1

У меня есть несколько Dockerized сервисов, обслуживающих http (и https). Внутренний http-порт (80) на уровне док-станции сопоставляется с другим портом, поэтому он доступен на хосте. И это работает нормально:

curl localhost:1234

Приводит меня к моей http службы в контейнере.

Теперь я хотел бы, чтобы это было доступно через DNS, без необходимости указывать порт (я хочу защитить клиентов от этого сопоставления портов). Я хотел бы использовать nginx для пересылки запросов на http://myserver1 -> http://localhost:1234 .

Можно ли настроить nginx таким образом? Можно ли настроить его на множественную пересылку следующим образом:

http://myserver1  --> http://localhost:1234
http://myserver2  --> http://localhost:1235
...

1 ответ1

0

Да, оно может.

опция server_name используется для поиска наилучшего соответствия между разными сайтами, размещенными на одном сервере nginx, например

server {
  listen 80;
  listen [::]:80;
  server_name myserver1; 

и еще один, как

server {
  listen 80;
  listen [::]:80;
  server_name myserver2; 

Таким образом, они могут работать как на порте 80, так и в зависимости от того, вызваны ли они http://myserver1 или http://myserver2.

Теперь, как подключиться к вашим услугам? Вы можете определить поставщиков услуг восходящего направления, таких как

#place this outside of the 'server{' block
upstream server1 {
  server localhost:1234;
} 

а затем перенаправить на него через

# place this inside the 'server{' block
location / {
  proxy_pass http://server1;
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .