Nginx反向代理长连接问题
PHP中文网
PHP中文网 2017-05-16 17:24:38
[Linux讨论组]

我有几台服务器 A,B,C,D,E ...其中A可以访问外网,其他不可以, 我用http_proxy方式, 通过A访问外网. 主要是访问合作方的接口,如http://api.xxx.com/get/user, 每秒大概有几百次.

这几天在看能否让A和合作方服务器(假设为Z)保持长连接, 经过修改测试, Z返回的header里面已经是 http/1.1 connection为keep-alive了, 但是socket的 Time-wait还是非常高, 另外A的日志里面, nginx 的 $connection 参数也总是在递增, 这是为什么呢?

下面是 A上的 proxy-pass 配置:

server{

  resolver 10.10.2.118;

  listen 1080;
  error_log   /var/log/nginx/proxy.error.log   error;
  access_log  /var/log/nginx/proxy.access.log  proxy_access;

  location / {
    proxy_pass http://$host$request_uri;
    proxy_redirect off;
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  Connection "keep-alive";
    proxy_http_version 1.1;
    proxy_ignore_client_abort on;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;

    allow 10.0.0.0/8;
    deny all;
  }
}

是我配置的问题吗? 不懂网络, 胡搞瞎搞, 希望大神有知道的指点一下. 谢谢

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
phpcn_u1582

请问:如果此时backend服务器是动态的,如何利用upstream的keepalive来保证nginx和backend是长连接?谢谢!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号