隐藏NGINX Docker容器公开的URL中的端口号

时间:2020-02-05 14:57:39

标签: docker nginx

我运行带有暴露端口80808443的Docker NGINX容器。

因此,我在以下位置访问了NGINX欢迎页面: http://www.nginx.test:8080


我试图弄清楚是否可以在URL中隐藏/删除端口。

因此,我在以下位置访问了NGINX欢迎页面: http://www.nginx.test


由于NGINX是反向代理服务器,因此它应该可以工作。对于NGINX和 我必须向Google提供一些答案,并且基本上可以在下面的尝试中应用它们。

首先,我在 server 级别尝试了(无效) NGINX的指令proxy_redirect

server {
    listen 8080;
    listen [::]:8080;
    server_name www.nginx.test;

    proxy_redirect $scheme://$server_name:8080 $scheme://$server_name;
}

然后我在位置级别尝试了(没有用) NGINX的指令proxy_pass

server {
    listen 8080;
    listen [::]:8080;
    server_name www.nginx.test;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass $scheme://$server_name;
    }
}

可能还有更多功能可以使它工作。

1 个答案:

答案 0 :(得分:3)

http://www.nginx.test被解释为http://www.nginx.test:80(并且使用SSL https://www.nginx.test == https://www.nginx.test:443)。

因此,如果要从URL删除端口80,则必须侦听。

使用docker,您可以将主机的端口映射到容器中的其他端口。
因此,无需更改NGINX容器的内容,只需将docker服务器的端口80映射到nginx容器的端口8080

docker container run ... --publish 80:8080 your_image ...