7

我正在尝试建立一个简单的静态网站,但 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 仍然显示。

谢谢你的帮助!

4

2 回答 2

4

问题的根源不在于您的设置,而在于第一个网络转发- 它通过将请求的 URL ( http://www.yoursite.com ) 重定向到新的 URL ( http://yoursite.com:8000 )

因此,当请求到达您的设置时,这已经到位,并且您无法将其更改回端口 80,因为您的提供商阻止了它。

您可以使用框架集作为转发器(“Web 0.5”)或使用它。

于 2013-03-16T23:10:23.260 回答
3

警告的话,在住宅连接上托管公共 Web 服务器通常违反 ISP 服务条款。

浏览器将始终显示 8080,因为需要在端口 8080 上启动 HTTP 连接才能访问您的站点。如果您可以“隐藏”部分 URL,请考虑安全问题。

唯一的解决方法是在可以通过端口 80 访问的服务器上托管代理服务器或框架网站。此外,还有可以将端口 80 重定向到 8080 的重定向服务。

于 2013-03-16T23:09:14.953 回答