我运行带有暴露端口8080
和8443
的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;
}
}
可能还有更多功能可以使它工作。
答案 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 ...