Я знаю, что можно обслуживать статические файлы с помощью error_page в NGinx, но мне было интересно, возможно ли обслуживать URL-адрес из моего локального (сокетного) приложения Flask, которое обслуживается через UWsgi.
Вот конфигурация 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