uWSGI虚拟主机问题

uWSGIconfiguration

[uwsgi] socket = /tmp/uwsgi.sock chmod-socket = 666 processes = 1 master = true vhost = true no-site = true 

Nginxconfiguration

 server { listen 80; server_name www.site1.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; uwsgi_param UWSGI_PYHOME /var/virtualenvs/site1; uwsgi_param UWSGI_CHDIR /var/www/site1; uwsgi_param UWSGI_SCRIPT wsgi; } } server { listen 80; server_name www.site2.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; uwsgi_param UWSGI_PYHOME /var/virtualenvs/site2; uwsgi_param UWSGI_CHDIR /var/www/site2; uwsgi_param UWSGI_SCRIPT wsgi; } } 

无论我打的第一个网站是一个它卡住显示,所以如果我首先得到site2我不能看到site1。 任何想法为什么uWSGI虚拟主机设置似乎不工作?

最后的问题是使用INI配置文件导致uWSGI以单解释器模式运行。 XML中完全相同的配置允许一切正常工作。 uWSGI开发者在未来的版本中不会这样。

如果你想使用TCP连接或者nginx建立一个uwsgi_pass支持:

nginx配置:

 location / { proxy_pass http://127.0.0.1:8010/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 

uwsgi ini文件:

 [uwsgi] # set the http port http = :8010 

如何使用TCP套接字呢?

 [uwsgi] socket = 127.0.0.1:3031 processes = 1 master = true vhost = true no-site = true 

nginx配置

 server { listen 80; server_name www.site1.com; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; uwsgi_param UWSGI_PYHOME /var/virtualenvs/site1; uwsgi_param UWSGI_CHDIR /var/www/site1; uwsgi_param UWSGI_SCRIPT wsgi; } } server { listen 80; server_name www.site2.com; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; uwsgi_param UWSGI_PYHOME /var/virtualenvs/site2; uwsgi_param UWSGI_CHDIR /var/www/site2; uwsgi_param UWSGI_SCRIPT wsgi; } }