Задать вопрос
@dobromin

Почему я не могу переназначить адрес nginx location?

Два сервера:
tomcat - там сайт
nginx - reverse proxy
На примере, есть у меня сайт на tomcat (при этом не важно это может быть и apache) адрес у него https://domain.ru
настраиваю nginx reverse proxy (location) на адрес https://domain.ru/wiki по итогу на сайт попадаю, но все ссылки к стилям картинкам скриптам итд без (wiki) и от этого они не подгружаются, как бы я не ковырялся не удается переопределить ссылки.

Второй вариант:
Делаю на сервере с сайтом https://domain.ru/wiki на nginx https://domain.ru/wiki так не откроется, если так на nginx https://domain.ru/ то работает по такому адресу https://domain.ru/wiki и все подгружается, но это конфигурация в реверс
location / {
но мне так не подходит, у меня есть сайт в корне и nginx просто не запустится с двумя location / {

как итог хочу чтобы в реверс было что то вроде
location /wiki/ {
			
				proxy_pass http://192.168.9.254:8090/;
				proxy_set_header Host $host;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_set_header X-Forwarded-Proto https;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
				proxy_set_header X-Forwarded-Host $server_name;

				access_log /var/log/nginx/mail-access.log;
				error_log /var/log/nginx/mail-error.log;
			}

И сайт работал. Спасибо.
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@MadridianFox
Web-программист, многостаночник
Nginx принимает запрос и проксирует его дальше на основании каких-то правил. Ответ он не преобразует. За ссылки отвечает приложение, т.е. tomcat. Вам нужно так написать код сайта, чтобы в нем была возможность настроить т.н. корень, от которого строятся ссылки.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так ведь просто:
location /wiki/ {
  set $new_uri $request_uri;
  if ($new_uri ~ ^/wiki/(.+)$) {
    set $new_uri $1;
  }
  proxy_pass http://192.168.9.254:8090/$new_uri;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы