diretiva desconhecida “stream” em /etc/nginx/nginx.conf:86

11

Eu tenho nginx/1.12.0e conforme documento contém streammódulo. Eu instalei o nginx com os seguintes comandos.

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
nginx -v
nginx version: nginx/1.12.0

Eu tentei adicionar a diretiva stream em nginx.conf:

stream {
    upstream sys {
        server 172.x.x.x:9516;
        server 172.x.x.x:9516;
    }
    server {
        listen 9516 udp;
        proxy_pass sys;
    }
}

mas quando eu reinicio nginxestou ficando abaixo do erro nos nginxlogs

unknown directive "stream" in /etc/nginx/nginx.conf:86

nginx -V output
nginx version: nginx/1.12.0
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector --param=ssp                                                                                          -buffer-size=4 -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2' --w                                                                                          ith-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -fPIC'                                                                                           --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/                                                                                          var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path                                                                                          =/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/                                                                                          modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-p                                                                                          ath=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-                                                                                          scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi                                                                                           --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_m                                                                                          odule --with-http_realip_module --with-http_auth_request_module --with-http_v2                                                                                          _module --with-http_dav_module --with-http_slice_module --with-threads --with-                                                                                          http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_modul                                                                                          e --with-http_gzip_static_module --with-http_image_filter_module=dynamic --wit                                                                                          h-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with                                                                                          -stream_ssl_module --with-stream_ssl_preread_module --with-mail=dynamic --with                                                                                          -mail_ssl_module --add-dynamic-module=/build/nginx-ZgS12K/nginx-1.12.0/debian/                                                                                          modules/nginx-auth-pam --add-dynamic-module=/build/nginx-ZgS12K/nginx-1.12.0/d                                                                                          ebian/modules/nginx-dav-ext-module --add-dynamic-module=/build/nginx-ZgS12K/ng                                                                                          inx-1.12.0/debian/modules/nginx-echo --add-dynamic-module=/build/nginx-ZgS12K/                                                                                          nginx-1.12.0/debian/modules/nginx-upstream-fair --add-dynamic-module=/build/ng                                                                                          inx-ZgS12K/nginx-1.12.0/debian/modules/ngx_http_substitutions_filter_module

Pesquisei esse erro no Google e algumas pessoas dizem que tenho que instalar / configurar este módulo separadamente. Alguns dizem que ele vem com a nginxversão 1.12.0. Alguém pode sugerir como eu posso instalar / configurar este módulo já instalado nginx?

Atenciosamente VG

user3332404
fonte
O Nginx está começando com o módulo de fluxo ativado? Por favor, publique a saída de nginx -V.
precisa
Obrigado Joe, por isso atualizei minha pergunta e colei minha saída nginx -V.
user3332404
Em / usr / lib / nginx / módulos I pode ver seguinte módulos ngx_http_image_filter_module.so ngx_http_geoip_module.so ngx_http_echo_module.so ngx_http_dav_ext_module.so ngx_http_auth_pam_module.so ngx_stream_module.so ngx_mail_module.so ngx_http_xslt_filter_module.so
user3332404

Respostas:

21

O módulo de fluxo está sendo adicionado como dinâmico, conforme:

--with-stream=dynamic

Você precisa que ele seja 'estático' - então carregue o módulo diretamente. Para fazer isso, adicione o seguinte na parte superior do seu nginx.conf:

load_module /usr/lib/nginx/modules/ngx_stream_module.so;

Então:

nginx -t

Se tudo estiver bem:

nginx -s reload
service nginx restart

Editar:

-s signal' Send signal to the master process. The argument signal can be one of: stop, quit, reopen, reload. The following table shows the corresponding system signals.

stop' SIGTERM
quit' SIGQUIT
reopen' SIGUSR1
reload' SIGHUP
Joe Brailsford
fonte
Impressionante!! sem mais erros. Graças a lot Joe você é meu .BTW salvador que é nginx -s realmente durante a execução deste Estou ficando abaixo nginx de erro: opção "-s" necessita do parâmetro
user3332404
Eu editei minha resposta, perdi um pouco. O nginx -s reload recarrega o processo mestre - a reinicialização do serviço basicamente faz a mesma coisa.
precisa
o que o streammódulo vai fazer? o que é o uso dele
Satish
@JoeBrailsford Existe alguma maneira de automatizar esse processo bcoz instância EC2 não será permanente para EBS, também se você pudesse você pode explicar por vapor módulo precisa ser estático ao trabalho
Bikash
5

Não tem reputação suficiente para comentar a resposta de Joe, então escreva aqui:

No CentOS7, o caminho dos módulos localizado na pasta lib64. Então, você precisa adicionar esta linha:

load_module '/usr/lib64/nginx/modules/ngx_stream_module.so';
Illidan
fonte
2

Me deparei com esse problema nginxno Amazon Linux em execução na instância do AWS EC2 e minha /usr/lib64/nginx/modules/pasta estava vazia.

Eu instalei o módulo com yum:

yum install nginx-mod-stream

A streamdiretiva funciona agora sem alterar o nginx.conf.

praegustator
fonte