Обратный прокси-сервер Nginx proxy_pass, статические ресурсы и пути


2

Я видел эту проблему довольно много раз в Интернете, до сих пор я не нашел реальный способ решить его правильно . Проблема заключается в следующем:

У нас один сайт слушает 127.0.0.1:8080 ; поэтому я хочу показать его другой сети, используя другой адрес, предположим, что http://example.com/APPLICATION/ . Система работает, но все hrefs и src указывают на http://example.com, а не на http://example.com/APPLICATION . Это создает много 404 и страницу css / script / image-less.

http://example.com/APPLICATION  ---> Calls http://127.0.0.1:8080

И это нормально. Теперь давайте предположим, что я нажимаю на ссылку, указывающую на /secondpage.html. Я ожидал бы пойти, чтобы пойти http://example.com/APPLICATION/secondpage.htmlи нет http://example.com/secondpage.html.

Теперь это касается скриптов, листов CSS и изображений. Я уже знаю о модуле HttpSub (s), который может переписывать теги href и src, но это подразумевает создание «перехватывающих» правил перезаписи, которые указывают на /.

Наконец, вот код блока, который я использую:

location /APPLICATION {
    proxy_set_header Host   $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8080;
}

Чтобы прояснить мой запрос, я ищу что-то в строках mod_proxy_html, которое работает без написания правил.
Кей
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.