所以我有兩個應用程序要運行在服務器上。一個應用程序,我想是「默認」的應用程序 - 也就是說,所有URL應發送默認情況下這個程序,除了一定的路徑,讓我們把它叫做/foo
:nginx + passenger上的多機架應用程序,其中一個作爲根用戶,另一個不用... config幫助
http://mydomain.com/ -> app1
http://mydomain.com/apples -> app1
http://mydomain.com/foo -> app2
我的兩個機架應用程序安裝,像這樣:
/var
/www
/apps
/app1
app.rb
config.ru
/public
/app2
app.rb
config.ru
/public
app1 -> apps/app1/public
app2 -> apps/app2/public
(app1
和app2
是符號鏈接到各自的應用程序的公共目錄)。這是這裏所描述的乘客設置爲子的URI:http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rack_to_sub_uri
用下面的配置我有/foo
將APP 2:
server {
listen 80;
server_name mydomain.com;
root /var/www;
passenger_enabled on;
passenger_base_uri /app1;
passenger_base_uri /app2;
location /foo {
rewrite ^.*$ /app2 last;
}
}
現在,我怎麼APP1拿起一切?我試過以下(放在location /foo
指令後),但我得到一個500具有無限內部重定向:
location/{
rewrite ^(.*)$ /app1$1 last;
}
我希望last
指令將阻止無限的重定向,但我想不會。我的/foo
重寫仍然有效。我仍然可以去http://mydomain.com/app1
。
任何想法?謝謝!
serverfault.com – hobodave 2010-02-23 20:12:06
只是在那裏發佈...如果我知道如何,我會刪除這一個,對不起! – 2010-02-23 20:47:36