nginx在一个docker上部署多个服务(端口)

nginx在一个docker上部署多个服务(端口)

我已经为我的 nginx 配置苦苦挣扎了三天,所以也许有人可以帮忙......

我现在的情况:

nginx 反向代理<-->一个 VM 和一个 DOCKER,它在不同的端口(9000 到 9005)上托管多个服务。

如果我使用 127.0.0.1 URL 而不是公共域在本地测试 docker 构建,则一切正常。如果我尝试在 nginx 上使用 https 甚至 https 运行,则会失败。

失败意味着,我可以连接到我的 docker 服务 9001(即登录服务),我登录到应用程序,然后通过 http 再次收到响应,并且该请求不通过 nginx。

我在 VM/Docker 上的服务配置

服务 9001 有前缀 /auth 服务 9002 有前缀 /dashboard

请求如下所示:http://sub.domain/auth或者http://sub.domain/dashboard

在 Nginx 上我搜索这个前缀,因此创建了到正确服务的路由,如下所示:

server {
        listen 0.0.0.0:80;
        server_name sub.domain;

        location /auth/ {
                proxy_pass http://172.18.1.25:9001;

                proxy_read_timeout 300s;

                # proxy header
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Content-Type-Options nosniff;
                proxy_set_header X-Frame-Options SAMEORIGIN;
        }

        location /dashboard/ {
                proxy_pass http://172.18.1.25:9002;

                proxy_read_timeout 300s;

                # proxy header
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Content-Type-Options nosniff;
                proxy_set_header X-Frame-Options SAMEORIGIN;
        }

        location /device/ {
                proxy_pass http://172.18.1.25:9005;

                proxy_read_timeout 300s;

                # proxy header
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Content-Type-Options nosniff;
                proxy_set_header X-Frame-Options SAMEORIGIN;
        }
}

** 更新 ** 没有 nginx 的测试(直接打开端口到 vm 端口)同样的问题。

--> 下一步测试不使用 docker。直接在我的虚拟机上运行服务...待定

相关内容