Nginx位置redirect不当

我的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我被redirect到myapp/tracker/tracker/users/sign_in而不是myapp/tracker/users/sign_in

我已经尝试了一百万个变体,但是要么得到500个太多的redirect,要么是这个。

我改变了一些摆弄的东西,认为我改变了它,但现在我已经打破了一些东西…应该备份。

请协助。 这是不好的做法,运行这样的两个rails应用程序?

您需要在server块中设置root ,而不是在location块中。 这是最常见的nginx错误之一。

在需要覆盖文档根目录的位置,使用alias而不是root以便正确转换path。