nginx пассажирский автономный предотвратить proxy_pass в подкаталоге
Я использую nginx в качестве обратного прокси-сервера для автономного сервера. Мне нужно настроить рут /
расположение на отдельном пассажирском порту (5000), но немногие другие подкаталоги должны обслуживаться "чистым" nginx. Я пытаюсь конфигурации как
server {
listen 443;
root /path/to/rails/public;
server_name example.com;
ssl on;
# ... some ssl config
# this is used for passenger standalone on port 5000
location / {
proxy_pass https://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_buffering off;
}
# this is not passenger standalone!
location /subdir {
proxy_pass https://127.0.0.1;
auth_basic "Restricted access area authorization needed.";
auth_basic_user_file /path/to/.htpasswd;
}
}
но https://example.com/subdir/ возвращает всегда ошибку 404. Любые советы, чтобы это исправить?
1 ответ
Переместить директиву местоположения для /subdir
выше направления корневого местоположения. Пути запроса совпадают в порядке, определенном в конфигурации.
server {
listen 443;
root /path/to/rails/public;
server_name example.com;
ssl on;
# ... some ssl config
# this is not passenger standalone!
location /subdir {
proxy_pass https://127.0.0.1;
auth_basic "Restricted access area authorization needed.";
auth_basic_user_file /path/to/.htpasswd;
}
# this is used for passenger standalone on port 5000
location / {
proxy_pass https://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_buffering off;
}
}