Explicación detallada del ejemplo de configuración multisitio de Nginx

Este artículo presenta principalmente información relevante sobre ejemplos de configuración de múltiples sitios de Nginx. Los amigos que lo necesiten pueden consultar lo siguiente

Explicación detallada del ejemplo de configuración multisitio de Nginx

En un VPS, a veces necesitamos ejecutar varios virtualenv al mismo tiempo. Por ejemplo, virtualenv app1 ejecuta una aplicación Django, mientras que virtualenv app2 ejecuta Tornado. Entonces, ¿cómo configurar Nginx para que admita el funcionamiento de estos dos entornos virtuales al mismo tiempo?

La primera es la configuración principal de Nginx, ubicada en etc/nginx/ngnix.conf, simplemente déjala como predeterminada:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

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

sesenta y cinco

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 oración, incluya /etc/nginx/conf.d/*.conf; cargará todos los archivos de configuración en la carpeta conf.d. Entonces lo siguiente es simple: diseñamos dos archivos .conf, uno es la configuración de django y el otro es la configuración de tornado.

1. app1_django.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

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;

}

La siguiente es la configuración del tornado:

2. app2_tornado.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

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 Nginx:

1

service nginx restart

Bien, se puede acceder a las aplicaciones en ambos entornos virtuales.

Gracias por leer, espero que ayude a todos, ¡gracias a todos!

Fuente: Lectura Weidian    https://www.weidianyuedu.com

Supongo que te gusta

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