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

관련 정보