场景:原: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