美文网首页
Java程序分布式部署——nginx负载均衡踩坑总结

Java程序分布式部署——nginx负载均衡踩坑总结

作者: BitterOutsider | 来源:发表于2020-11-09 20:02 被阅读0次
http {
    upstream myapp1 {
        server localhost:8080;
        server localhost:8081;
        server localhost:8082;
    }

    server {
        listen 80;
        location / {
            proxy_pass http://myapp1;
        }
    }
}
  • 运行docker命令: docker run --name my-custom-nginx-container --restart=always -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
  • 这时发现nginx并没有成功启动,使用docker logs查看,得到以下的错误信息:
  • 要解决这个问题很简单,只需要在上述nginx.conf配置文件中,http前加上events{}。
  • 此时访问localhost还是不能成功,使用lsof -i:80 查看是否有进程监听80端口,答案是没有的。这是因为我们在docker中启动nginx时,没有给它指定端口,所以我们加上 -p 参数。docker run --name my-custom-nginx-container --restart=always -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 80:80 nginx
  • 再次访问localhist,不幸的是又有了新的错误:


  • docker logs 查看错误信息:
  • 显然,我们忘记了docker容器内部与宿主机是完全隔离的,我们根本无法访问localhost,于是我们需要将localhost改成局域网内的ip地址。
events{}
http {
    upstream myapp1 {
        server 192.168.0.128:8080;
        server 192.168.0.128:8081;
        server 192.168.0.128:8082;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}
  • 此时已经可以成功访问了。

相关文章

网友评论

      本文标题:Java程序分布式部署——nginx负载均衡踩坑总结

      本文链接:https://www.haomeiwen.com/subject/gkrmvktx.html