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