LINUX.ORG.RU

Вроде бы простой rewrite...

 , ,


0

1

Я совсем недавно начал пользоваться nginx для своих нужд и что-то явно туплю: не могу перезаписать «/app» на просто «/» вот в каком случае:

Конфигурация:

NGINX при обращении к /app передаёт запрос на Morbo (сервер для Monolicious-приложений), который на 127.0.0.1:3000

upstream myapp {
  server 127.0.0.1:3000;
}

server {
  ...
  ...
  location /app {
#    rewrite ^/app(/(.*))?$ /$2 last;
    proxy_pass http://myapp;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Мне нужно, что запрос /app/hello приходил приложению, запущенному под Morbo (Mojolicious-приложение), как просто /hello.

rewrite, который закомментирован в конфигурации, я уже как только не менял - ничего не помогает: либо в Morbo запрос приходит с /app частью, либо он перезаписывается на тот же /hello и вообще, зараза, в Morbo не попадает.

Как же так? ЧЯДНТ? И как сделать правильно?

Спасибо! ;)

★★★★★

Блин, а почему вместо rewrite'е не сделают более гибкий роутинг через скрипты? Только и вижу что кто-то мучается с этим рерайтингом.

anonymous ()

Документацию пробовал читать? Ну хоть чуть-чуть?

last
завершает обработку текущего набора директив модуля ngx_http_rewrite_module, после чего ищется новый location, соответствующий изменённому URI;

expelled ★★ ()
Ответ на: комментарий от anonymous

Спасибо!

Сейчас безо всяких rewrite'ов сделал (см. ниже) - и заработало!

location /app/ {
 proxy_pass http://127.0.0.1:3000/
 ...
}

Оказывается, очень важны слеши на конце пути location (не «/app», НО «/app/») и в конце URL'а для proxy_pass (без слеша на конце это не будет считаться целевым URL'ом!)

DRVTiny ★★★★★ ()
Последнее исправление: DRVTiny (всего исправлений: 1)
Ответ на: комментарий от expelled

Оказывается, вообще без rewrite'ов можно было обойтись :)

DRVTiny ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.