我的 nginx.conf:
http {
include mime.types;
default_type application/octet-stream;
# click tracking!
access_log /var/log/nginx/nginx.access.log combined;
sendfile on;
tcp_nopush on; # off may be better for *some* Comet/long-poll stuff
tcp_nodelay off; # on may be better for some Comet/long-poll stuff
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 500;
gzip_disable "MSIE [1-6]\.";
include /etc/nginx/sites-enabled/*;
upstream nvhbase {
server unix:///tmp/nvhbase.sock fail_timeout=0;
}
upstream tracker {
server unix:///tmp/tracker.sock fail_timeout=0;
}
server {
listen 80;
server_name hmaapp101;
# Application root, as defined previously
#root /var/www/nvh/public;
#try_files $uri/index.html $uri.html $uri;
location / {
root /var/www/nvh/public;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unix:///tmp/nvhbase.sock;
}
location ^~ /tracker/ {
root /var/www/tracker/public;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unix:///tmp/tracker.sock:/tracker/;
}
}
}
當我去時,http://myapp/tracker
我被重定向到myapp/tracker/tracker/users/sign_in
而不是myapp/tracker/users/sign_in
.
我已經嘗試了一百萬種變體,但要么得到 500 太多的重定向,要么就是這個。
我擺弄了一些東西,以為我把它改回來了,但現在我破壞了一些東西......應該備份。
請協助。像這樣運行兩個 Rails 應用程式是不好的做法嗎?
答案1
你需要root
在塊中設置server
,而不是在location
塊中設置。這是 nginx 最常見的錯誤之一。
在location
需要覆蓋文檔根目錄的位置,使用alias
而不是root
正確轉換路徑。