Назад | Перейти на главную страницу

Nginx: как прокси_передать подкаталог в другой подкаталог

Пожалуйста, помогите, я пытаюсь прокси передать свой domain.com/travel в приложение узла, содержимое которого работает здесь 255.255.255.255:1234/travel ... Как мне это сделать?

У меня сейчас есть это:

location /travel/ {
    rewrite ^/travel(/.*)$ $1 break;
    proxy_pass  http://255.255.255.255:1234/travel;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Это частично работает, но идет в корень приложения в http://255.255.255.255:1234 вместо. Я смог сделать это в Apache с помощью этого

ProxyPreserveHost On
ProxyPass /travel/ http://255.255.255.255:1234/travel/
ProxyPassReverse /travel/ http://255.255.255.255:1234/travel/
ProxyPass /travel http://255.255.255.255:1234/travel/
ProxyPassReverse /travel http://255.255.255.255:1234/travel/

но после перехода на Nginx я не могу повторить это. Помогите?

Вы должны уметь использовать это:

location /travel(/.*)$ {
    rewrite ^ $1 break;
    proxy_pass  http://example.com:1234/travel$1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Я переместил захват регулярного выражения в location директива, хотя это не имеет большого значения. Затем я добавил $1 до конца proxy_pass, таким образом proxy_pass Целевой URL получает результаты захвата регулярного выражения, добавленные в конец URL.