Nginx捕获并自定义proxy_pass返回的错误问题

 更新时间:2024年06月18日 09:22:08   作者:sbdx  
这篇文章主要介绍了Nginx捕获并自定义proxy_pass返回的错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Nginx捕获并自定义proxy_pass返回错误

需求

实际情况:

后端图片存储服务对接华为存储,把数据写在华为上。

上级会不定时的对图片进行抽查考核,要求5s内必须返回数据,但是图片服务不定时会挂掉,由于代码年代久远已无人维护,只好在图片服务前端再部署个nginx,通过proxy_pass代理后端服务,当后端返回404或5xx错误时,对proxy_pass进行捕获,实现自定义输出。

解决方法

upstream DGIMediaServer {
	server 172.24.49.xxx:6551 fail_timeout=3s;
}
server {
	listen 8888;
	server_name _;
	root html;
	sent_timeout 5s;
	#将下面几个错误码跳转到/200.jpg
	error_page 404 500 502 =200 /200.jpg;
	location = /200.jpg {
		root html; 
	}
	location / {
		#使用自定义捕获,不开启则无法捕获proxy_pass的错误
		proxy_intercept_errors on;
		#连接服务器超时设置
		proxy_connect_timeout 3s;
		#发送数据超时设置
		proxy_send_timeout 3s;
		#返回数据超时设置
		proxy_read_timeout 3s;
		#自定义错误处理
		error_page 404 500 502 503 504=200 /200.jpg;
	}
	index index.html index.php;
	charset UTF-8;
}

Nginx的proxy_pass、root、alias的说明

代理配置

1、root

root配置代理路径时,会在代理的地址后拼接配置字段:

location /static {
root static/image;

}

在访问http://ip:port/static/*.*时会映射到http://ip:port/static/static/image/*.*

2、alias(只能用于location)

alias配置代理路径时,直接替换代理地址:

location /static {
alias static/image;

}

在访问http://ip:port/static/*.*时会映射到http://ip:port/static/image/*.*

3、proxy_pass

proxy_pass配置代理路径时,直接替换整个代理路径,包括ip地址的端口等:

location /static {
proxy_pass http://ip_two:port_two/static;

}

在访问http://ip:port/static/*.*时会映射到http://ip_two:port_two/static/static/*.*

  • 代理路径后不带斜杠时,配置路径会替代原本的ip和端口等,并拼接代理地址。
  • 代理路径后带斜杠时,配置路径会替代原本的ip和端口等,不拼接代理地址。
location /static/ {
proxy_pass http://ip_two:port_two/abc/;

}

在访问http://ip:port/static/*.*时会映射到http://ip_two:port_two/abc/*.*

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx开启Brotli压缩算法实现过程详解

    Nginx开启Brotli压缩算法实现过程详解

    这篇文章主要介绍了Nginx开启Brotli压缩算法实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Apache Nginx 禁止目录执行PHP脚本文件的方法

    Apache Nginx 禁止目录执行PHP脚本文件的方法

    这篇文章主要介绍了Apache Nginx 禁止目录执行PHP脚本文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库

    shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库

    这篇文章主要介绍了shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库的实现方法 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Nginx四层负载均衡的配置指南

    Nginx四层负载均衡的配置指南

    当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力,这篇文章主要给大家介绍了关于Nginx四层负载均衡配置的相关资料,需要的朋友可以参考下
    2021-06-06
  • 详解Nginx静态服务配置(root和alias指令)

    详解Nginx静态服务配置(root和alias指令)

    这篇文章主要介绍了详解Nginx静态服务配置(root和alias指令),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Nginx和vue编译后的存放位置的配置实践

    Nginx和vue编译后的存放位置的配置实践

    这篇文章主要介绍了Nginx和vue编译后的存放位置的配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-09-09
  • Nginx日志配置的使用及说明

    Nginx日志配置的使用及说明

    这篇文章主要介绍了Nginx日志配置的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • Nginx反向代理转发tomcat的实现

    Nginx反向代理转发tomcat的实现

    本文主要介绍了Nginx反向代理转发tomcat的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • nginx配置返回文本或json的方法

    nginx配置返回文本或json的方法

    有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,这篇文章主要介绍了nginx配置返回文本或json的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,这篇文章主要给大家介绍了关于Windows系统下安装及部署Nginx(含多个站点部署)的相关资料,需要的朋友可以参考下
    2024-01-01

最新评论