Remova a opção “ipv6only” do módulo Puppet nginx

2

Meu servidor nginx (que serve vários vhosts) falha ao iniciar:

Nov 08 23:54:43 foo systemd[1]: Starting nginx - high performance web server...
Nov 08 23:54:43 foo nginx[3830]: nginx: [emerg] duplicate listen options for [::]:8081 in /etc/nginx/sites-enabled/000-mysite.vhost:3
Nov 08 23:54:43 foo nginx[3830]: nginx: configuration file /etc/nginx/nginx.conf test failed
Nov 08 23:54:43 foo systemd[1]: nginx.service: control process exited, code=exited status=1
Nov 08 23:54:43 foo systemd[1]: Failed to start nginx - high performance web server.
Nov 08 23:54:43 foo systemd[1]: Unit nginx.service entered failed state.
Nov 08 23:54:43 foo systemd[1]: nginx.service failed.

Eu identifiquei o problema para duas diretivas listen vinculadas à mesma porta TCP para IPv4 e IPv6, onde a opção ipv6only é usada:

[root@foo ~]# head /etc/nginx/sites-enabled/mysite.vhost 
server {
        listen 8081;
        listen [::]:8081 ipv6only=on;  
        ssl off;
...

Portanto, esta configuração funciona corretamente:

[root@foo ~]# head /etc/nginx/sites-enabled/mysite.vhost 
server {
        listen 8081;
        listen [::]:8081;  
        ssl off;
...

[Pergunta relacionada: link

Agora, essa configuração é fornecida pelo Puppet por meio do módulo puppet-nginx . Existe uma maneira de (via Puppet) não especificar a opção ipv6only ou resolver o problema de outra maneira?

    
por dr01 08.11.2016 / 14:56

1 resposta

2

Eu não sei dizer como é a sua peça de marionete. De qualquer forma, o módulo puppet-nginx tem o recurso nginx::resource::vhost , que - eu acho - você usa de alguma forma. Este recurso tem a opção ipv6_listen_options , que inclui ipv6only = on por padrão . Então você deve poder chamar assim:

nginx::resource::vhost { 'example.com':
    ipv6_listen_options => '',
    # another options there
}

Outra possibilidade é usar o módulo antigo, que tinha ipv6only=on codificado no modelo. Foi corrigido em fevereiro com esta solicitação de pull . Assim, você pode removê-lo do modelo ou do módulo de atualização.

    
por 10.11.2016 / 13:00