2014-03-05 53 views
4

我試圖建立一個域名爲我的節點項目,nginx的(v1.5.11),我有succesfull重定向域到網上,但是我需要使用3000端口,所以現在,我的網站位置看起來像http://www.myweb.com:3000/,當然,我想保留只有「www.myweb.com」部分是這樣的:http://www.myweb.com/無法隱藏位置的端口nginx的

我有搜索和嘗試許多配置,但沒有人似乎爲我工作,我不知道爲什麼,這是我的地方nginx.conf文件,我想http://localhost:8000/文字更改爲http://myName/文本,請記住,重定向的工作,我只是想「躲」上的位置的端口。

#user nobody; 
worker_processes 1; 

#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid  logs/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log logs/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 


     server { 
     listen  8000; 
     server_name localhost; 

     #charset koi8-r; 

     #access_log logs/host.access.log main; 

     location/{ 
      proxy_pass http://localhost:8000/; 
      proxy_redirect http://localhost:8000/ http://myName/; 

     } 

     #error_page 404    /404.html; 

     # redirect server error pages to the static page /50x.html 
     # 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 

} 

pd。我試圖修復它我本地的Windows 8機器上,但如果需要其他的操作系統,我的遠程服務器工作在Ubuntu 12.04 LTS

謝謝大家。

+1

看來你的proxy_pass指向同一本地主機:8000,你的服務器監聽。 將監聽端口更改爲80。 – liepumartins

回答

3

添加到您的server塊:

port_in_redirect off; 

例如

server { 
    listen  80; 
    server_name localhost; 
    port_in_redirect off; 
} 

Documentation reference

你也應該改變服務器名稱到myNameserver_name應該是你的域名。

您還應該監聽端口80,然後使用proxy_pass重定向到正在偵聽端口8000的任何內容。

完成的結果應該是這樣的:爲了清楚起見,除去

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include   mime.types; 
    default_type  application/octet-stream; 
    sendfile   on; 
    keepalive_timeout 65; 


    server { 
     listen  80; 
     server_name www.myweb.com; 

     location/{ 
     proxy_pass http://localhost:8000/; 
     } 

     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 
    } 
} 

評論。

1

代理過程中隱藏的端口需要在服務器身體這兩行:

server_name_in_redirect off; 
proxy_set_header Host $host:$server_port; 

通過conf是這樣的:

server 
{ 
listen 80; 
server_name example.com; 
server_name_in_redirect off; 
proxy_set_header Host $host:$server_port; 
location/{ 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_pass http://localhost:8080; 
} 
access_log off; 
}