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隐藏转发的端口号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Mac 关闭Mac所占用的的端口号

Nginx 删除 url 中的端口号 :8080

ubuntu下怎么查看已打开的端口号?怎么打开关闭指定端口?

如何清除linux已经存在的端口号?

如何在 unix 中查找特定进程 ID 的端口号? [关闭]

tomcat绑定域名,在不修改端口号为80的情况下,如何隐藏端口