Nginx: uwsgi URL を使用して error_pages (404 など) をサーバーに送る方法は?

Nginx: uwsgi URL を使用して error_pages (404 など) をサーバーに送る方法は?

NGinx で error_page を使用して静的ファイルを提供することが可能であることは知っていますが、UWsgi 経由で提供されるローカル (ソケット化された) Flask アプリから URL を提供することが可能であるかどうか疑問に思っていました。

NGinx の設定は次のとおりです:

server {
    listen       80;
    server_name www.myproject.com;
    access_log /var/log/nginx/myproject_frontend.access.log;
    error_log /var/log/nginx/myproject_frontend.error.log;

    # Something like :
    error_page 404 uwsgi_pass unix:/tmp/uwsgi_myproject.sock;/errors/404

    location / { try_files $uri @yourapplication; }
    location @yourapplication {
      include uwsgi_params;
      uwsgi_pass unix:/tmp/uwsgi_myproject.sock;
    }
}

これは可能ですか? ソケットの代わりにローカル (127.0.0.1) のみのアクセスを許可した場合、機能しますか?

ご意見ありがとうございます。

答え1

置き換えてみてください:

error_page 404 uwsgi_pass unix:/tmp/uwsgi_myproject.sock;/errors/404

による:

error_page 404 /errors/404;

location /errors/ {
    uwsgi_intercept_errors on;
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi_myproject.sock;
}

ソース:uwsgi_intercept_errors は、次の URL から入手できます。

関連情報