Nginx转发时的重复订单问题
来源:互联网 发布:淘宝好的女装店铺 编辑:程序博客网 时间:2024/05/16 07:55
当我们使用Nginx作为负载均衡使用,使其可以在cluster的不同节点之间进行分发的时候,出现了重复订单问题。重复的订单在不同的节点上各有一个,并且时间间隔相差1分钟,因此是Nginx的超时配置导致的毫无疑问。
当然,默认情况下的Nginx的超时设置理论上来说是合理的,只不过我们的订单服务需要外接门店系统,受限于门店系统不得不把订单系统的超时时间设置的超长。
这当然就导致了--如果没有修改Nginx的超时配置的话--Nginx认为第一次派发出去的节点出了问题,然后向其他的节点重新派发。
修改的关键之处是使Nginx允许的超时时间超过订单服务自己允许的超时时间。
关键属性配置:
proxy_read_timeout 600;
proxy_send_timeout 600;
而proxy_connect_timeout属性保持默认就好,如果只是处理时间长,那连接时间依旧应该很短,2s足以。
以下作为示例:
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream;server_names_hash_bucket_size 1024; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on;upstream cluster {server node#1:80 weight=3 max_fails=2 fail_timeout=450s;server node#2:80 weight=3 max_fails=2 fail_timeout=450s;} server { listen 80; server_name dns#1;location / {proxy_pass http://cluster/;proxy_next_upstream error timeout invalid_header http_404; proxy_connect_timeout 2;proxy_read_timeout 600;proxy_send_timeout 600;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} } server { listen 80; server_name dns#2;location / {proxy_pass http://cluster/;proxy_next_upstream error timeout invalid_header http_404; proxy_connect_timeout 2;proxy_read_timeout 600;proxy_send_timeout 600;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} }}
0 0
- Nginx转发时的重复订单问题
- 关于nginx转发的一个问题
- Nginx配置proxy_pass转发的/路径问题
- nginx转发配置shipyard遇到的问题
- Nginx配置proxy_pass转发的/路径问题
- Nginx配置proxy_pass转发的/路径问题
- Nginx配置proxy_pass转发的/路径问题
- Nginx配置proxy_pass转发的/路径问题
- nginx错误转发问题
- nginx监听端口非80时的转发问题的配置文件
- nginx超时转发请求问题
- Nginx配置proxy_pass 转发问题
- nginx 端口转发跳转问题
- nginx做非80端口转发丢失端口的问题
- nginx的proxy_pass路径转发规则浅析(末尾/问题)
- ecshop怎样解决重复订单问题
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
- nginx转发流程的框架结构
- 查找maven依赖的jar mvn dependency:tree解决多项目多引入jar包版本导致的问题
- ORACLE、 SQLSERVER、MYSQL与DB2的区别
- ios项目中安装和使用CocoaPods
- How To Use NSOperations and NSOperationQueues
- CSS 3 animation
- Nginx转发时的重复订单问题
- 将txt转换成pdf的转换方法分享
- 诚实
- 欢迎使用CSDN-markdown编辑器
- textare的固定大小的属性
- 这几天的面试
- 子类和父类的关系
- spring mvc源码分析(整个流程)
- ACM —— 1007