2013-10-08 39 views
0

我有一箇舊的服務器設置,我已經給人們的網址服務與端口420,example.corp.com:420,現在我把所有的服務轉移到常規的80端口Ngnix和我希望所有來自example.corp.com:420的請求都默認返回到example.corp.com。有沒有辦法告訴Ngnix去app1,不管給出的端口號是多少?我嘗試了幾件事,但都沒有奏效。這是我目前的配置。提前致謝。Ngnix默認所有的端口80端口

upstream unicorn-app1 { 
    server unix:/tmp/unicorn.app1.sock; 
} 

server { 
    listen 80; 
    server_name example.corp.com; 
    root /home/example/apps/wm/current/public; 

    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://unicorn-app1; 
     break; 
    } 
    } 
} 

upstream unicorn-app2{ 
    server unix:/tmp/unicorn.app2.sock; 
} 

server { 
    listen 420; 
    server_name example.corp.com; 
    root /home/example/apps/app2/current/public; 

    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://unicorn-app2; 
     break; 
    } 
    } 
} 

回答

0

其實更好的辦法是使出口420重定向到端口80,這樣的人會慢慢停止使用端口480,只使用301重定向

server { 
    listen 480; 
    server_name example.com; 
    return 301 example.com$request_uri; 
} 
0

我真的把它工作。我認爲這很簡單,當你明白髮生了什麼事情時,我只是錯過了整個工作所需的小細節。因此,無論何時您需要將Ngnix服務器的不同端口默認回到特定端口,您只需將其他端口應用定義爲指向80端口應用即可。這是解決方案,我大膽地提出了必須改變以使其發揮作用。希望能幫助到你。

upstream unicorn-app1 { 
    server unix:/tmp/unicorn.app1.sock; 
} 

server { 
    listen 80; 
    server_name example.corp.com; 
    root /home/example/apps/wm/current/public; 

    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://unicorn-app1; 
     break; 
    } 
    } 
} 

upstream unicorn-app2{ 
    server unix:/tmp/unicorn.**app1**.sock; 
} 

server { 
    listen 420; 
    server_name example.corp.com; 
    root /home/example/apps/**app1**/current/public; 

    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://unicorn-**app1**; 
     break; 
    } 
    } 
}