2013-03-16 94 views
6

我试图建立一个简单的静态网站,我有一个问题与nginx的复杂的一些事情,最显着的是我的ISP阻止所有入站端口80流量的事实。Nginx隐藏转发的端口号

首先,我得到了一个网站转发设置,以便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仍然显示。

感谢您的帮助!

回答

3

的根重定向服务问题不在于设置,但与第一网络向前 - 它的工作原理通过重定向请求的URL(http://www.yoursite.com)到新的URL(http://yoursite.com:8000

因此,这已经到位,请求到达时您的设置,并且您不能像您提供的那样将其更改回端口80 r阻止它。

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

2

在住宅连接上托管公共Web服务器的警告字通常是针对ISP的服务条款。

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

唯一的解决办法是举办一个代理服务器或服务器上的网站框架,可以在端口80访问此外,也有可能会被重定向到端口80到8080