【问题标题】:Nginx docker container to reverse proxy to a java appNginx docker容器反向代理到Java应用程序
【发布时间】:2022-02-17 06:16:27
【问题描述】:

一个 nginx 容器在一个 ubuntu vps 上运行,使用的命令只是 docker run -it -d=true --restart=unless-stopped --name=nginx -p=8080:80 nginx。我尝试编辑default.conf 文件,目前是:

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /color/green {
        proxy_pass http://127.0.0.1:8345;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }


}

我的 spring 应用程序正在运行,2 个端点正常工作,

$ java -jar colors-1.0.jar 

o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8345 (http) with context path ''

没有 nginx,我可以直接在我的应用程序的端口 12.345.67.890:8345/color/green 上调用 vps,这工作正常。但是我需要在端口 80 上调用它,但这不起作用,我不知道如何配置 nginx 或调试它..

谢谢!

【问题讨论】:

    标签: java spring docker nginx


    【解决方案1】:

    在容器中,127.0.0.1就是容器本身,所以

    proxy_pass http://127.0.0.1:8345;
    

    尝试将请求传递到端口 8345 的 nginx 容器,没有任何东西在监听。

    如果我理解正确,那么 Tomcat 正在主机上运行。如果主机是 Linux,那么您可以访问位于 172.17.0.1 的主机。所以把地址改成

    proxy_pass http://172.17.0.1:8345;
    

    它应该可以工作。

    【讨论】:

    • 谢谢!应用了编辑,但是我仍然没有重定向,一定还有别的东西
    猜你喜欢
    • 1970-01-01
    • 2018-02-22
    • 2021-08-25
    • 2021-05-04
    • 2018-03-20
    • 1970-01-01
    • 2020-09-10
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多