nginx工作线程转发连接加倍问题

全连接保持后,例如200个全连接到了nginx(假如nginx有2个工作线程) 那么每个工作线程都持有200个连接,也就是一共400个连接
那么此时tomcat的连接设置如果小于400,是不行的
我不太理解,这是不是可以理解为,这两个人(两个nginx工作线程),是共享这200个连接的,像卖东西一样,一起卖这200个,谁先卖完谁结束?来提高效率?

不完全正确。nginx的工作线程是独立的,每个工作线程都会处理一部分连接。当有新连接到来时,nginx会根据负载均衡算法将连接分配给其中一个工作线程处理。因此,如果有200个全连接到了nginx,那么每个工作线程会持有100个连接。这些连接是独立的,不会共享。如果tomcat的连接设置小于200,那么可能会出现连接被拒绝的情况。为了避免这种情况,可以增加nginx的工作线程数,或者增加tomcat的连接设置。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7707470
  • 你也可以参考下这篇文章:linux网络服务[nginx]——————nginx中常用命令、nginx的配置文件、nginx反向代理跳转到后端的tomcat、实现nginx 的反向代理不同访问路径跳转到不同后端端口
  • 除此之外, 这篇博客: nginx端口转发(80端口到tomcat的8080端口)具体步骤以及配置中的 三. nginx各种类型的端口转发 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. 将域名转发到本地端口
    server{
      listen 80;
      server_name  tomcat.baidu.com;
      index  index.php index.html index.htm;
    
      location / {
        proxy_pass  http://127.0.0.1:8080; # 转发规则
        proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }
    

    这样访问 http://tomcat.baidu.com 时就会转发到本地的 8080 端口

    1. 将域名转发到另一个域名
    server{
      listen 80;
      server_name  baidu.wode.com;
      index  index.php index.html index.htm;
    
      location / {
        proxy_pass  http://www.baidu.com;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }
    

    这样访问 http://baidu.wode.com 时就会转发到 http://www.baidu.com

    1. 本地一个端口转发到另一个端口或另一个域名
    server{
      listen 80;
      server_name 127.0.0.1; # 公网ip
      index  index.php index.html index.htm;
    
      location / {
        proxy_pass  http://127.0.0.1:8080; # 或 http://www.baidu.com
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }
    

    这样访问 http://127.0.0.1 时就会转发到本地的 8080 端口或 http://www.baidu.com

  • 您还可以看一下 张立坤老师的Nginx反向代理与Tomcat集群配置详解课程中的 Nginx专题课程的总结和说明小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    以上参考资料中没有涉及连接转发的效率问题,因此无法给出具体解决方案。