20

組み込みのuwsgi プロキシ モジュールを使用して、 uwsgi へのリバース プロキシとしてnginxを使用し、 uwsgiによってホストされるフラスコアプリがあります。別のページにリダイレクトするページにアクセスするたびに、Location ヘッダーが HTTPS 以外の URL を指しています。例えば:

$ socat openssl:my-web-server:443 stdio
GET / HTTP/1.0
Host: my-web-server

HTTP/1.1 302 FOUND
Server: nginx/1.0.4
[...]
Location: http://my-web-server/login

私のnginx設定は次のようになります:

server {
    listen 80;
    listen 443 ssl;
    server_name my-web-server;
    charset utf-8;

    ssl_certificate /etc/nginx/certs/server.pem;
    ssl_certificate_key /etc/nginx/certs/server.key;

    location / {
        uwsgi_pass unix:/tmp/uwsgi.sock;
        include uwsgi_params;
    }
}
4

1 に答える 1

28

正しい Location ヘッダーを書き込むには、リクエストの処理に使用されるスキーム (http または https) を uwsgi に渡す必要があります。

デフォルトでは、一連の設定が/etc/nginx/uwsgi_paramsファイルに設定されています。include uwsgi_params;構成ファイルの行は、これらをロードするものです。

ただし、何らかの理由で、スキームはこれらのデフォルト設定の 1 つではありません。これは、次を追加することで修正できます。

uwsgi_param UWSGI_SCHEME $scheme;

行の後にnginx構成にinclude uwsgi_params;追加するか、/etc/nginx/uwsgi_paramsファイルに直接追加します。

于 2011-09-07T19:48:46.897 に答える