Nginx 位置重新導向不正確

Nginx 位置重新導向不正確

我的 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正確轉換路徑。

相關內容