Nginx proxy pass и абсолютные пути



Я пытаюсь запустить какое-то приложение nodejs на сервере (Ubuntu 14.04), используя Nginx, и я почти закончил. Вот моя конфигурация сервера(/etc/nginx/sites-available/default):



server {
listen 80;
server_name my_domain.com;

location /test1 {
proxy_pass http://127.0.0.1:5000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

location /test2 {
proxy_pass http://127.0.0.1:5001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}


У меня есть несколько запущенных приложений, и все они хорошо работают, я могу получить доступ к ним с помощью http://my_domain.com/test1, http://my_domain.com/test2, и т.д...



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

например, <a href="/">Home</a>

или (внутри экспресса)
res.redirect('/');



Это перенаправление не идет в http://my_domain.com/test1, но они идут в http://my_domain.com/

Есть ли выход?, через конфигурации nginx, чтобы сообщить приложению, что корневое расположение на самом деле http://my_domain.com/test1?



Я действительно Новичок в nginx и виртуальных хостах в целом, я пытаюсь учиться... Любая помощь будет оценена по достоинству.

Редактировать:

Результатом curl -I http://127.0.0.1:5000 является:



HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 1376
ETag: W/"560-GGm/YYltkhKxiOVNZ99jqQ"
set-cookie: connect.sid=s%3AkZYCqLKvbhHhK3W8ECBN8G91s41paws4.ekLWefrd3NdQatT3VzFNozfnFs65YBEW9k9MNTdbQT0; Path=/; HttpOnly
Date: Sat, 15 Aug 2015 13:13:20 GMT
Connection: keep-alive


Как вы можете видеть, я не получаю заголовок Location...

Кстати, мне удалось решить проблему с помощью поддоменов, которые, похоже, работают так, как я и ожидал... В любом случае ответ был бы оценен, так как я может понадобиться в будущем.
771   1  

1 ответ:

  1. Используйте curl для проверки значения заголовка Location, используемого клиентом для перенаправления. например curl -v http://127.0.0.1:5001/myappp
  2. Используйте proxy_redirect для изменения заголовка Location

Comments

    Ничего не найдено.