Web2py nginx и домены - PullRequest
       12

Web2py nginx и домены

2 голосов
/ 30 августа 2011

Здравствуйте! Я использую web2py nginx и uwsgi, но у меня проблема с развертыванием 1 или более доменов. Проблема в том, что сервер всегда возвращает приложение приветствия по умолчанию, а не папку, указанную для домена

Любые идеи с благодарностью. Вот мой файл nginx.conf (соответствующие части)

server {
    listen       80;
    server_name  www.cheer10s.com cheer10s.com;

    location / {
        uwsgi_pass     127.0.0.1:9001;
        include        uwsgi_params;
    }

    location /static {
        root   /opt/web2py/applications/cheer10s/;
    }
}

server {
    listen       443;
    server_name  www.cheer10s.com cheer10s.com;
    ssl                  on;
    ssl_certificate      /opt/nginx/conf/server.crt;
    ssl_certificate_key  /opt/nginx/conf/server.key;

    location / {
        uwsgi_pass      127.0.0.1:9001;
        include         uwsgi_params;
        uwsgi_param     UWSGI_SCHEME $scheme;
    }

    location /static {
        root /opt/web2py/applications/cheer10s/;
    }
}

* веселит

1 Ответ

3 голосов
/ 30 августа 2011

Это место:

location /static {
        root   /opt/web2py/applications/cheer10s/;
    }

- это только перезапись для статических файлов, а не для приложений, и я думаю, что это неправильно, должно быть:

location ~* /(\w+)/static/ {
           root /opt/web2py/applications/;
        }

В приведенной выше строке будут только файлы сервера в папке / static непосредственно NGINX, не затрагивая web2py для этого.

с uwsgi, эти строки отвечают за вызов web2py

location / {
                uwsgi_pass      127.0.0.1:9001;
                include         uwsgi_params;
        }

и маршрутизатор должен быть определен в платформе, а не в nginx. если вы хотите, чтобы приложение cheer10s было приложением по умолчанию, поместите маршруты .py.py в корневой папке web2py. выглядит так:

routers = dict(

    # base router
    BASE = dict(
        default_application = 'cheer10s',
        domains = {
                'yourdomain.com' : 'cheer10s',
                'anotherdomain.com':'anotherapp'
                },
        applications = ['cheer10s','anotherapp','admin'],
        controllers = 'DEFAULT'
    ),
)

сохраните приведенное выше содержимое как rout.py в корневой папке web2py и перезапустите web2py, но не забудьте исправить вашу конфу nginx.

...