2

こんにちは、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/;
    }
}

*乾杯

4

1 に答える 1

3

この場所:

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をデフォルトのアプリケーションにしたい場合は、routes.py を web2py ルート フォルダに配置します。次のようになります。

routers = dict(

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

上記のコンテンツを routes.py として web2py ルート フォルダに保存し、web2py を再起動します。ただし、nginx conf を修正することを忘れないでください。

于 2011-08-30T01:20:36.760 に答える