Sto provando a servire due siti Django usando Nginx.Serve più siti Django con Nginx con UWSGI
Non posso servire nessuno dei due problemi, ma se attivo entrambi invia entrambi gli URL a un sito. Questa è la mia prima volta che uso Nginx, di solito uso Apache quindi abbi pazienza con me.
Ho due siti siti abilitati che assomigliano a questo:
site1.com:
server{
server_name www.site1.com;
listen 69.164.211.85:80;
access_log /var/www/site1.env/logs/access.log;
error_log /var/www/site1.env/logs/error.log;
location /static/ {
# Point this wherever the static files for your django app are $
autoindex on;
alias /var/www/site1.env/Site1/static/;
}
location/{
uwsgi_pass 127.0.0.1:3031;
include uwsgi_params;
uwsgi_param UWSGI_APPID site1;
uwsgi_param UWSGI-FILE /var/www/site1.env/Site1/wsgi/site1_wsgi.py;
}
}
site2.net
server{
server_name www.site2.net;
listen 69.164.211.85:80;
access_log /var/www/site2.env/logs/access.log;
error_log /var/www/site2.env/logs/error.log;
location /static/ {
# Point this wherever the static files for your django app are $
autoindex on;
alias /var/www/site2.env/Site2/static/;
}
location/{
uwsgi_pass 127.0.0.1:3032;
include uwsgi_params;
uwsgi_param UWSGI_APPID site2;
uwsgi_param UWSGI-FILE /var/www/site2.env/Site2/wsgi/site2.py;
}
}
Sono in corso anche due istanze di UWSGI che iniziano con questo script:
Sito 1:
description "uWSGI server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec /usr/local/bin/uwsgi \
--home /var/www/site1.env/Site1/ \
--socket 127.0.0.1:3031 \
--chmod-socket \
--module site1_wsgi \
--pythonpath /var/www/site1.env/Site1/wsgi \
-H /var/www/site1.env
Sito 2:
description "uWSGI server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec /usr/local/bin/uwsgi \
--home /var/www/site2.env/Site2/ \
--socket 127.0.0.1:3032 \
--chmod-socket \
--module site2 \
--pythonpath /var/www/site2.env/Site2/wsgi \
-H /var/www/sit2.env
Questo è ciò che il mio file nginx.conf assomiglia:
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/$
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/$
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
avrei pensato uwsgi_pass essere impostato su diverse porte impedirebbe loro di andare in lo stesso ma chiaramente mi manca qualcos'altro. Apprezzerei qualsiasi aiuto, grazie!
Mi chiedo che cosa gestisce le richieste se chiamate senza 'www.' con la configurazione sopra? Hai un predefinito 'server {nome_server _; } 'definizione? – Tisho
@Tisho No non l'ho fatto, ho disabilitato l'impostazione predefinita. Ho la sensazione che lo stia mandando a quello che è stato attivo per primo. – DNN