IS>> Насколько я могу судить из конфига, для запросов /~user выдаётся редирект
IS>> /~user/, а все остальные запросы проксируются на бэкенд. Вопрос - почему
IS>> бы /~user тоже не проксировать на бэкенд с тем, чтобы он сам выдавал
IS>> редиректы ?
AK> Бэкенд при этом отдает 301 и location вида http://backend:port/~user/
AK> "proxy_redirect default" от этого не спасает.
Прошу прощения. Разобрался.
Вот рабочий конфиг, корректно выдающий редиректы для любого "Host:" :
http {
server {
listen 10.10.0.1;
location ~ ^/\~[-0-9a-zA-Z_]+$ {
rewrite ^(/~[-0-9a-zA-Z_]+)$ http://$http_host$1/
permanent;
}
location / {
proxy_pass http://10.10.0.1:8000;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass_request_headers on;
proxy_pass_request_body on;
}
}
}
Всё равно будут проблемы с редиректами каталогав внутри /~user/,
например, /~user/dir. Нужно делать поддержку регулярных выражений
в proxy_redirect.
Игорь Сысоев
http://sysoev.ru