Nginx隐藏转发的端口号[关闭]
Posted
技术标签:
【中文标题】Nginx隐藏转发的端口号[关闭]【英文标题】:Nginx hide forwarded port number [closed] 【发布时间】:2013-03-05 13:07:05 【问题描述】:我正在尝试建立一个简单的静态网站,但我遇到了一个 nginx 问题,该问题因许多事情而变得复杂,最值得注意的是我的 ISP 阻止了所有入站端口 80 流量。
首先,我设置了一个网络转发,以便 www.mysite.com 将重定向到 mysite.com:8000,然后我设置我的路由器将端口 8000 转发到我运行 nginx 的服务器。这绕过了我的 ISP 在端口 80 上的阻塞。我现在尝试让服务器上的 nginx 将端口 8000 上的请求代理到端口 80 上的虚拟主机,以便该站点在加载后显示为 mysite.com比 mysite.com:8000。
我一直在尝试使用 nginx 的 proxy_pass
指令来做到这一点,但无论我做什么,网站总是显示为 mysite.com:8000。
这是我目前所拥有的:
server
listen [::]:8000
server_name mysite.com;
location /
proxy_pass http://127.0.0.1:80;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
server
listen 127.0.0.1:80;
server_name mysite.com;
root /var/www/homepage;
index index.html;
.
. (non-relevant stuff)
.
链接到实际站点:http://www.bjacobel.com
我也尝试通过将路由器上的端口 8000 转发到端口 80,并让 nginx 在端口 80 上侦听来做到这一点,但仍然显示带有 :8000 的 url。
感谢您的帮助!
【问题讨论】:
【参考方案1】:问题的根源不在于 您的 设置,而在于第一个 网络转发 - 它通过将请求的 URL (http://www.yoursite.com) 重定向到新的网址 (http://yoursite.com:8000)
因此,当请求到达您的设置时,这已经到位,并且您无法将其更改回端口 80,因为您的提供商阻止了它。
您可以使用框架集作为转发器(“Web 0.5”)或使用它。
【讨论】:
【参考方案2】:警告,在住宅连接上托管公共网络服务器通常违反 ISP 服务条款。
浏览器将始终显示 8080,因为需要在端口 8080 上启动 HTTP 连接才能访问您的站点。如果您可以“隐藏”部分 URL,请考虑安全问题。
唯一的解决方法是在可以通过端口 80 访问的服务器上托管代理服务器或框架网站。此外,还有可以将端口 80 重定向到 8080 的重定向服务。
【讨论】:
以上是关于Nginx隐藏转发的端口号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu下怎么查看已打开的端口号?怎么打开关闭指定端口?