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

为什么nginx不做简单的负载平衡。Tomcat实例。错误请求400

  •  0
  • Kirill  · 技术社区  · 6 年前

    我坚持做一件简单的工作。 我有3个tomcat集群实例,它们位于:

    IP=10.0.0.136(我的机器的IP);端口=8180;8280;8380;

    然后我用以下命令运行nginx NGNX.CONF :

    http {
        upstream tomcat_servers {
            server 10.0.0.136:8180;
            server 10.0.0.136:8280;
            server 10.0.0.136:8380;
        }
    ...
    
    server {
            listen       8011;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                proxy_pass http://tomcat_servers;       
            }
    

    我的tomcat实例启动并运行,我可以在浏览器中检查它们,它们显示tomcat的起始页。

    但是当我来nginx的时候 本地主机:8011 存在错误的请求400 http状态。 日志中也没有错误…我已经重启了nginx,以防万一。

    这个错误是我在mac和linux ubuntu上犯的。

    我错过了什么?

    nginx的反应是: enter image description here

    在error.log中没有错误。

    访问日志: enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kirill    6 年前

    我发现了问题所在…不过,当我使用这个时,很奇怪:

    upstream tomcats {...} //in proxy_pass also of course
    

    不带“uu”标志 那一切就完美了。我怀疑这可能是我在写作上的一些错误,所以使用了简单的:

    upstream a_b {...}
    

    也收到了400个错误的请求。

    所以我不知道为什么会这样,但是这解决了问题。

    我用 Ubuntu 18.04 nginx版本:nginx/1.14.0(ubuntu)