Explicação detalhada do exemplo de configuração multi-site Nginx

Este artigo apresenta principalmente informações relevantes sobre exemplos de configuração de vários sites Nginx. Amigos necessitados podem consultar o seguinte

Explicação detalhada do exemplo de configuração multi-site Nginx

Em um VPS, às vezes precisamos executar vários virtualenv ao mesmo tempo. Por exemplo, virtualenv app1 executa um aplicativo Django, enquanto virtualenv app2 executa Tornado. Então, como configurar o Nginx para que ele suporte a operação desses dois virtualenvs ao mesmo tempo?

A primeira é a configuração principal do Nginx, localizada em etc/nginx/ngnix.conf, basta deixar como padrão:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid    /var/run/nginx.pid;

events {

  worker_connections 1024;

}

http {

  include    /etc/nginx/mime.types;

  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '

           '$status $body_bytes_sent "$http_referer" '

           '"$http_user_agent" "$http_x_forwarded_for"';

  access_log /var/log/nginx/access.log main;

  sendfile    on;

  #tcp_nopush   on;

  keepalive_timeout 65;

  #gzip on;

  server {

    listen    80;

    server_name 112.124.7.216;

    #server_name localhost;

    #if ($host != 'www.nowamagic.net' ) {

    #  rewrite ^/(.*)$ http://www.nowamagic.net/$1 permanent;

    #}

    access_log /home/nowamagic/logs/access.log;

    error_log /home/nowamagic/logs/error.log;

    #root     /root/nowamagic_venv/nowamagic_pj;

    location / {

      uwsgi_pass 127.0.0.1:8077;

      #include uwsgi_params;

      include /etc/nginx/uwsgi_params;

      #uwsgi_pass 127.0.0.1:8077;

      #uwsgi_param UWSGI_SCRIPT index;

      #uwsgi_param UWSGI_PYHOME $document_root;

      #uwsgi_param UWSGI_CHDIR $document_root;

    }

    location ~ \.php$ {

      #root     html;

      root      /var/www/html;

      fastcgi_pass  127.0.0.1:9000;

      fastcgi_index index.php;

      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      include    fastcgi_params;

    }

    access_log off;

  }

  include /etc/nginx/conf.d/*.conf;

}

Observe esta frase, inclua /etc/nginx/conf.d/*.conf; Ela carregará todos os arquivos de configuração na pasta conf.d. Então a próxima coisa é simples: projetamos dois arquivos .conf, um é a configuração do Django e o outro é a configuração do tornado.

1.app1_django.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

server {

  listen    80;

  server_name 112.124.7.216;

  #server_name localhost;

  #if ($host != 'www.imofa.net' ) {

  #  rewrite ^/(.*)$ http://www.imofa.net/$1 permanent;

  #}

  access_log /home/nowamagic/logs/access.log;

  error_log /home/nowamagic/logs/error.log;

  #root     /root/nowamagic_venv/nowamagic_pj;

  location / {

    uwsgi_pass 127.0.0.1:8077;

    #include uwsgi_params;

    include /etc/nginx/uwsgi_params;

    #uwsgi_pass 127.0.0.1:8077;

    #uwsgi_param UWSGI_SCRIPT index;

    #uwsgi_param UWSGI_PYHOME $document_root;

    #uwsgi_param UWSGI_CHDIR $document_root;

  }

  location ~ \.php$ {

    #root     html;

    root      /var/www/html;

    fastcgi_pass  127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include    fastcgi_params;

  }

  access_log off;

}

A seguir está a configuração do tornado:

2.app2_tornado.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

upstream tornado {

  server 127.0.0.1:8888;

}

  

server {

  listen  80;

  root /root/nmapp2_venv;

  index index.py index.html;

  

  server_name server;

  

  location / {

    #if (!-e $request_filename) {

    #  rewrite ^/(.*)$ /index.py/$1 last;

    #}

  }

  

  location ~ /index\.py {

    proxy_pass_header Server;

    proxy_set_header Host $http_host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Scheme $scheme;

    proxy_pass http://tornado;

  }

}

Reinicie o Nginx:

1

service nginx restart

OK, os aplicativos em ambos os ambientes virtuais podem ser acessados.

Obrigado pela leitura, espero que ajude a todos, obrigado a todos!

Fonte: Leitura Weidian    https://www.weidianyuedu.com

Acho que você gosta

Origin blog.csdn.net/weixin_45707610/article/details/131764323
Recomendado
Clasificación