代码之家  ›  专栏  ›  技术社区  ›  xiaokang

当我使用nginx代理服务时,为什么localhost和localhost之间有这么多tcp连接

  •  0
  • xiaokang  · 技术社区  · 7 年前

    enter image description here

    当我使用nginx代理服务时,为什么localhost和localhost之间有这么多tcp连接。 这是我的nginx代理配置:

    server {
        listen 80;
        server_name www.domain1.com;
        location /{
        proxy_pass http://localhost:4999;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
    }
     server {
        listen 80;
        server_name www.domain2.com;
        location /{
        proxy_pass http://localhost:4999;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
        }
      }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Larry.He    7 年前

    Nginx在这里充当反向代理,为一个http请求建立客户端代理tcp连接和代理服务器tcp连接(http keep alive将重用tcp conn)

    我猜,配置为的客户端关闭客户端代理后,代理服务器连接将关闭 proxy_pass http://localhost:4999;

    您可以尝试以下配置:

    upstream backend {
       server localhost:4999;
       keepalive 10;
    }
    
    server {
       listen 80;
       server_name www.domain2.com;
       location /{
          proxy_pass http://backend;
       }
    }
    
    推荐文章