Encaminhamento Nginx pelo nome do servidor

1

Eu tenho vários serviços dockerized, servindo http (e https). A porta http interna (80) é mapeada no nível da janela de encaixe para uma porta diferente, de modo que ela esteja acessível no host. E isso está funcionando bem:

curl localhost:1234

Leva-me ao meu serviço http no contêiner.

Agora eu gostaria que isso fosse acessado por meio de um dns, sem precisar especificar a porta (desejo proteger os clientes desse mapeamento de porta). Gostaria de usar o nginx para encaminhar solicitações para http://myserver1 - > http://localhost:1234 .

O nginx pode ser configurado dessa maneira? Pode ser configurado para vários encaminhamentos, da seguinte maneira:

http://myserver1  --> http://localhost:1234
http://myserver2  --> http://localhost:1235
...
    
por dangonfast 05.03.2018 / 08:25

1 resposta

0

Sim, pode.

a opção server_name é usada para encontrar uma melhor correspondência entre diferentes sites hospedados no mesmo servidor nginx, como

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

e outro como

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

Dessa forma, eles podem ser executados na porta 80 e corresponder, dependendo se forem chamados pelo link ou link .

Agora, como se conectar aos seus serviços? Você pode definir provedores de serviços upstream como

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

e, em seguida, redirecionar para ele via

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