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

标签 tomcat nginx

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

IP = 10.0.0.136 (IP of my machine); Ports = 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 中没有错误。

访问日志: enter image description here

最佳答案

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

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

没有符号“_”那么一切正常。我怀疑这可能是我写的一些错误并使用了简单的:

upstream a_b {...}

并且还收到了 400 错误的请求。

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

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

关于tomcat - 为什么nginx不做简单的负载均衡。 Tomcat 实例。错误请求 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877360/

相关文章:

java - 无法将 Grails 应用程序部署到 JDK 不匹配的 Tomcat 8 : 404 The requested resource is not available

tomcat - 我可以从不同的 intelliJ 实例远程调试在 intelliJ 中运行的 tomcat 吗?

tomcat - 是否可以在嵌入式 Tomcat 7 中启用 JMX?

python - 制作一个 python 脚本 API

nginx - 如何将 IP 上的请求重定向到域

安装 XAMPP 后 Tomcat 服务未运行

session - 在 Tomcat 6 中复制 session 属性时遇到问题

django - 在这种情况下,主机 header 是否可能中毒?

php - 通过PHP业务逻辑限制对NGINX中静态文件的访问?

php - Nginx、PHP - 发生错误。抱歉,您要查找的页面目前不可用。请稍后再试