UWSGI Vhost проблема - PullRequest
       22

UWSGI Vhost проблема

6 голосов
/ 19 февраля 2011

Конфигурация uWSGI

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

Конфигурация Nginx

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;
    }
}

Какой бы сайт я ни нажимал первым, он показывает тот, который застрял, поэтому, если я впервые захожу на сайт2, я никогда не смогу увидеть сайт1. Любые мысли о том, почему настройка vhost uWSGI, кажется, не работает?

Ответы [ 4 ]

5 голосов
/ 28 февраля 2011

В итоге проблема заключается в том, что при использовании файла конфигурации INI uWSGI работает в режиме одного интерпретатора. Точно такой же конфиг в XML позволяет все работать правильно. Разработчик uWSGI это НЕ будет иметь место в будущих версиях.

2 голосов
/ 19 февраля 2011

Здесь http://wiki.nginx.org/HttpUwsgiModuleMultipleDynamicApplications вы можете найти пример того, как настроить несколько приложений uWSGI через один апстрим.

0 голосов
/ 14 сентября 2012

Если вы хотите использовать 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
0 голосов
/ 27 февраля 2011

Как насчет использования сокета TCP вместо этого?

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

nginx config

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;
    }
}
...