2012-08-11 92 views
0

我有2個Rails應用程序運行在同一臺服務器上。我想要將domain1.com的請求轉發到我的Rails1應用程序,並且domain2.com請求我的Rails2應用程序。我配置我的nginx.conf像這樣:一個Nginx,2個應用程序/域

upstream thin1 { 
    server 0.0.0.0:3000; 
    server 0.0.0.0:3001; 
    server 0.0.0.0:3002; 
} 

upstream thin2 { 
    server 0.0.0.0:3003; 
    server 0.0.0.0:3004; 
    server 0.0.0.0:3005; 
} 

server { 
    listen   80; 
    server_name  *.domain1.com; 
    root   /path1/;   

    location/{ 
     try_files $uri/index.html $uri.html $uri @backend; 
    } 

    location @backend { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://thin1; 
    } 
} 

server { 
    listen     80; 
    server_name    *.domain2.com; 
    root     /path2/; 

    location/{ 
     try_files $uri/index.html $uri.html $uri @backend; 
    } 

    location @backend { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://thin2; 
    } 
} 

但是,所有的請求(domain1.com和domain2.com)被轉發到我的Rails1應用程序。任何想法?

+0

上游thin1和thin2具有相同的服務器地址?你確定它是正確的嗎? – freestyler 2012-08-11 06:19:19

+0

@freestyler oops,修正了這個問題。端口是不同的。那有意義嗎? – samvermette 2012-08-11 06:26:37

+1

您確定\ @backend命名的位置不在服務器之間共享嗎?將文件分割爲2可能會有所幫助。或者嘗試使用\ @ backend1,\ @ backend2作爲命名位置。 – 2012-08-11 09:33:53

回答

0

使用您的命名位置2個不同的名字應該修復它:

location @backend1 { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://thin1; 
} 

location @backend2 { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://thin2; 
} 

(不要忘了相應地改變每個服務器的try_files指令)

0

爲每個主機名設置一個單獨的服務器配置,並轉發到每個主機的相應後端。

+1

介意分享一些代碼?這幾乎是我的配置文件現在所做的。我沒有看到如何將它分成兩個不同的文件會有所作爲... – samvermette 2012-08-11 09:00:54

相關問題