Como executar várias instâncias do Nginx em porta diferente

6

Eu gostaria de ter várias instâncias do Nginx em execução no meu servidor em portas separadas (por exemplo, um usuário executa o Nginx na porta 2345 e outro usuário na porta 2346). Até agora, fui bem sucedido em compilar e executar o servidor em suas portas designadas. No entanto, eu estou correndo em um problema estranho: Se eu visitar domain1.com:2345 ou domain2.com:2346 eu recebo a resposta correta (200), mas se eu visitar domain1.com ou domain2.com (sem especificar a porta) eu não obtiver resposta alguma.

Qualquer ajuda / dicas para descobrir como configurar isso seria muito apreciada.

    
por Edvinas 03.03.2011 / 12:23

3 respostas

10

Ok, encontrei uma solução.

O que fiz foi executar um servidor 'master', como root, na porta 80. A partir daí, adicionei blocos de servidor para cada servidor em suas portas com uma diretiva proxy_pass para o servidor.

  server {
    listen      80;
    charset     utf-8;
    server_name domain1.com;
    location / {
        proxy_pass http://domain1.com:2345;
  }
  server {
    listen      80;
    charset     utf-8;
    server_name domain2.com;
    location / {
        proxy_pass http://domain2.com:2346;
  }

Talvez haja uma solução mais elegante, mas isso parece funcionar bem.

    
por 03.03.2011 / 15:17
3

Webbrowsers escolhem automaticamente a porta 80 se você não especificar uma porta. Pela sua explicação, parece que nenhuma das duas instâncias escuta na porta 80.

O que você pode fazer é, em vez disso, veicular tanto domain1.com quanto domain2.com da mesma instância nginx usando hosts virtuais .

    
por 03.03.2011 / 13:32
1

Se for possível ter vários endereços IP para seu servidor, você pode executar várias instâncias nginx na porta 80, desde que especifique endereços IP diferentes na diretiva listen .

Um exemplo:

Na primeira instância:

server {
  listen a.b.c.e:80
  ...
}

Na outra instância

server {
  listen f.g.h.i:80
  ...
}

No entanto, isso se tornará uma dor se você tiver mais do que apenas alguns usuários. Também vários endereços IP públicos podem ser difíceis de encontrar.

    
por 03.03.2011 / 15:31

Tags