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

时间:2018-06-15 14:13:42

标签: tomcat nginx

我坚持一项简单的任务。 我有3个实例的Tomcat集群:

  

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

然后我使用以下 nginx.conf

运行nginx
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的起始页面。

但是当我在 localhost:8011 上来到nginx时,会出现Bad Request 400 HTTP状态。 在日志中也没有错误...我已经重新启动了nginx,以防万一。

我在Mac和Linux Ubuntu上遇到此错误。

我错过了什么?

nginx的回应: enter image description here

在error.log中没有错误。

的access.log: enter image description here

1 个答案:

答案 0 :(得分:1)

我发现了问题所在……这很奇怪,但是当我使用它时:

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

不带符号“ _” ,则一切正常。我怀疑这可能是我在编写时遇到的错误,并且使用简单:

upstream a_b {...}

,还收到了400个错误的请求。

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

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