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

来源:http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_intercept_errors

相关内容