nginx请求转发被拒绝_nginx 请求转发

本文描述了一个由于nginx请求转发超时导致的重复订单问题。当后端平台响应超时,nginx会再次转发请求,从而产生重复订单。解决方案包括修改proxy_next_upstream配置或调整超时时间。
摘要由CSDN通过智能技术生成

场景:原:nginx请求转发有关问题

原:nginx请求转发问题

这段时间系统上出现一个很怪异现象,即生成很多重复订单,从生成时间上看,有同一时间的,也有相隔几分钟的。开始怀疑是程序上的问题,排查程序,没有找到问题原因。进而怀疑是nginx的配置问题,那么先需要证明这个怀疑。要证明这个怀疑就得找到--通过nginx的http请求与生成订单的关联,即客户端的一个请求,在nginx上被处理了两次。

办法:加日志。

1. nginx日志:加上客户端IP和请求会话的sessionid。

ip:使用Nginx作为反向代理时,后端应用服务器日志记录的客户端IP就不是真实的客户端IP,而是Nginx代理的IP。要解决这个问题可以在Nginx配置一个新的Header,用来存储$remote_add,然后获取记录这个值。

nginx配置:

location / {

proxy_pass http://test/;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

}

jboss配置:修改配置文件service.xml

prefix="localhost_access_log." suffix=".log"

pattern="%h %{X-Real

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值