我知道可以在 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