Nginx
Nginx + Unicorn 多個帶位置的應用程序 - 路由
我想只使用不同的位置塊來執行多個 Rails 應用程序。啟動和配置了不同的獨角獸工人,他們工作得很好。
每個應用程序都在同一個文件夾下:
/var/www/<app>
,所以我這樣配置 nginx:root /var/www; location /app1/ { root /var/www/app1/public; try_files $uri/index.html $uri.html $uri @app1; } location /app2/ { root /var/www/app2/public; try_files $uri/index.html $uri.html $uri @app2; }
我的問題是,有了這個規則集,一個請求(如 mydomain/app1/check)像這樣進入我的 app1:
Started GET "/app1/check" for ...
我只想Started GET "/check" for ...
我應該對我的配置進行哪些更改?
如果您不想更改上游參數(無論您在您的
@app
位置做什麼),一個簡單的rewrite
方法可以幫助您:location /app1/ { root /var/www/app1/public; rewrite ^/app1/(.*)$ /$1 break; try_files /app1/$uri/index.html /app1/$uri.html /app1/$uri @app1; }
break
參數 to將rewrite
導致 nginx 重寫 URI 而不實際重定向或重新路由請求。不要忘記為
/app1/
您的try_files
名字添加前綴,因為$uri
在執行時已經被重寫try_files
。