Meine 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/;
}
}
}
Wenn ich zu gehe, http://myapp/tracker
werde ich zu myapp/tracker/tracker/users/sign_in
statt zu weitergeleitet myapp/tracker/users/sign_in
.
Ich habe eine Million Varianten ausprobiert, aber entweder bekomme ich 500 Weiterleitungen zu viel oder dies.
Ich habe ein paar Dinge geändert und herumgespielt und dachte, ich hätte es wieder zurückgeändert, aber jetzt habe ich etwas kaputt gemacht ... hätte ein Backup machen sollen.
Bitte helfen Sie. Ist es eine schlechte Praxis, zwei Rails-Apps auf diese Weise auszuführen?
Antwort1
Sie müssen root
im server
Block festlegen, nicht im location
Block. Dies ist einer der häufigsten Nginx-Fehler.
Verwenden Sie dort location
, wo Sie das Dokumentstammverzeichnis überschreiben müssen, alias
anstelle von root
, damit der Pfad richtig übersetzt wird.