У меня есть веб-сервер ngnix, работающий на порту 80. У меня есть Nodejs, работающий на 9000 портах. Мне нужно переписать запрос, поступающий с моего nginx на сервер приложений, который работает на порту 3000.Настройка правил перезаписи в nginx
Я попытался настроить с помощью следующих параметров, но он перенаправляется в браузер и не перенаправляет сервер приложений. Когда есть запрос для /hosts.json, его необходимо перенаправить на номер http://appserver.corp.cn.com:3000/hosts/hosts.json
. Пожалуйста, дайте мне знать, где я ошибаюсь.
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location/{
rewrite ^/hosts.json http://appserver.corp.cn.com:3000/hosts.json permanent;
rewrite ^/hosts/bu.json http://appserver.corp.cn.com:3000/hosts/bu.json permanent;
proxy_pass http://localhost:9000;
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;
}
}
Мне нужно установить proxy_pass
для ниже Шаблон URL
location ~ ^/hosts/bu/(.*)/app/(.*)$ {
proxy_pass http://appserver.cnma.com:3000/hosts/bu/$1/app/$2;
}
Если вы не хотите редирект, то вы должны использовать 'proxy_pass' к соответствующему серверу –
Как сделать это? Я имею в виду, что такое синтаксис для перенаправления на основе шаблона url? – zilcuanu
Не могли бы вы быть более точными со словом «перенаправление»? «Переадресация» означает «сообщить браузеру, чтобы туда идти», в то время как вы действительно хотите туда отправиться (используя прокси-пароль nginx) и дать браузеру ответ. Это правильное описание вашей проблемы? –