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

Как перенаправить часть запросов на другой порт?

Nginx установлен на VM. Нужно часть запросов перенаправить на другой порт. Я создал файл /etc/nginx/conf.d/example.conf

ну и вот он сам
server{
listen 443;
location /findByFId {
proxy_pass http://хх.ххх.хх.хх:4444/;
proxy_redirect off;
}
}

апи заменил на "х" для поста

Понял что написал вопрос некорректно, добавлю информации. У меня есть сайт, который стоит на этом Nginx и Api для связи с базой данных которое стоит на этой же VM на Node.js, Api в свою очередь слушает порт 4444, я на домен взял сертификат LetsEncrypt и теперь когда с сайта идет запрос на порт 4444, он блокируется, так как запрос на 4444 порт идет http. После изучения данного вопроса пришел к выводу что мне нужно все запросы отправлять на https(443 порт) и дальше отфильтровывать и перенаправлять их. С сайта могут быть стандартные запросы, типа Add, findId и тд. С Nginx до этого я дела не имел. Поэтому вопросы сформулирую конкретно.
1. Правильно ли я решил что нужно создать файл именно в этой папке? /etc/nginx/conf.d/example.conf
2. Тот вариант что на примере - НЕ рабоает. Что с ним не так? Если есть покажите пример похожей переадресации.
  • Вопрос задан
  • 4260 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
kotomyava
@kotomyava
Системный администратор
Если эта часть запросов к одному и тому же адресу, то это можно сделать с помощью блока upstream, и указывать не конкретный ip/порт в proxy_pass, а группу серверов.
Разными серверами в группе могут быть не обязательно разные сервера, а и просто разные порты на одном ip.
подробнее в документации: https://nginx.org/ru/docs/http/ngx_http_upstream_m...

Если к разным адресам, создать разные локейшены, которые будут получать нужные запросы и делать проксирование на нужные порты.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bigbn
Можно добавить еще одну директиву location на другой путь и по аналогии сделать proxy_pass на нужный порт.
location можно использовать сколь-угодно раз внутри одного server

location /findByName {
   proxy_pass http://хх.ххх.хх.хх:4445
}
Ответ написан
Ваш ответ на вопрос

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

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