浏览 4.3k
目前有一套nginx,后面挂载了tomcat应用abc,应用的需求是当应用停掉后(返回码应该是502)显示特定的停机页面,其它错误(比如404)由应用自己进行处理,应用不会处理502
根据应用的需求设置了 proxy_intercept_errors off
location /abc/ {
proxy_intercept_errors off;
...
}
在nginx的主配置文件nginx.conf里设置了
error_page 400 403 404 405 415 500 502 503 504 505 /note.html;
location = /note.html {
root /usr/share/nginx/html;
按照上面配置,应用已经能自己处理404等HTTP返回,但是502没有返回 note.html,而是返回了以下页面

如果要应用自己能处理HTTP返回,看起来必须设置 proxy_intercept_errors off,但是设置了这个以后error page就不生效了,请问有什么办法可以来处理这种需求?

按点赞数排序
按时间排序
proxy_intercept_errors on; error_page 里去掉 404. 另外注意proxy_intercept_errors, error_page范围,可以 写在server 里,如果写在location 里只对location 生效。
0
回答于2022-10-31 14:05
accesskey为nginx第三方模块指令,需要安装nginx第三方模块ngx_http_accesskey_module。我下载的
https://github.com/Martchus/nginx-accesskey,测试通过,--add-module=/home/lq/work/nginx-accesskey(模块源码路径)必须指定,其他参数根据自己情况而定。
Ubuntu18.04编译参数如下:./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --add-module=/home/lq/work/tongmingzhiyun/openresty/lua-nginx-module-0.10.21 --add-module=/home/lq/work/tongmingzhiyun/openresty/ngx_devel_kit-0.3.1 --add-module=/home/lq/work/nginx-accesskey
“未登录”的含义比较模糊,不知道是个什么定义,可以用变量、limit except、if等来配合实现。
微信公众号
加入微信群