【问题标题】:Hide port number in URL exposed by NGINX Docker container隐藏 NGINX Docker 容器暴露的 URL 中的端口号
【发布时间】:2020-02-05 14:57:39
【问题描述】:

我使用暴露的端口80808443 运行Docker NGINX 容器。

所以我访问了欢迎 NGINX 页面: http://www.nginx.test:8080


我正在尝试确定是否可以隐藏/删除 URL 中的端口。

所以我访问了欢迎 NGINX 页面: http://www.nginx.test


由于 NGINX 是反向代理服务器,它应该可以工作。对 NGINX 和 我不得不谷歌一些答案,基本上它们在下面的尝试中得到应用。

首先我在 server 级别尝试了 (没有工作) NGINX 的指令 proxy_redirect,如下所示:

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

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

然后我在 location 级别尝试了 (没有工作) 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;
    }
}

可能还有更多的东西可以让它发挥作用。

【问题讨论】:

  • httphttps 协议的默认端口分别为 80 和 443。要从 URL 中删除端口号,您必须侦听默认端口。

标签: docker nginx


【解决方案1】:

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 ...

【讨论】:

  • 我不知道隐藏这些端口是浏览器的工作。我不知道它是否也适用于备用端口8080,但我很高兴我学到了一些东西:)
猜你喜欢
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
  • 2019-02-01
  • 2021-04-26
  • 2019-01-20
相关资源
最近更新 更多