directiva desconocida "stream" en /etc/nginx/nginx.conf:86


11

Tengo nginx/1.12.0y según el documento contiene streammódulo. He instalado nginx con los siguientes 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

Traté de agregar la directiva de transmisión en nginx.conf:

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

pero cuando reinicio nginxme aparece un error inferior en los nginxregistros

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

Busqué en Google este error y algunas personas dicen que tengo que instalar / configurar este módulo por separado. Algunos dicen que viene con la nginxversión 1.12.0. ¿Alguien puede sugerir cómo puedo instalar / configurar este módulo en ya instalado nginx?

Saludos VG


¿Nginx comienza con el módulo de transmisión habilitado? Por favor, publique la salida de nginx -V.
Joe Brailsford

Gracias Joe, así que actualicé mi pregunta y pegué mi salida nginx -V.
user3332404

En / usr / lib / nginx / módulos Veo siguientes 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

Respuestas:


21

El módulo de transmisión se agrega como dinámico, según:

--with-stream=dynamic

Necesita que sea 'estático', así que cargue el módulo directamente. Para hacerlo, agregue lo siguiente en la parte superior de su nginx.conf:

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

Luego:

nginx -t

Si todo está bien:

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

¡¡Increíble!! No más errores. Muchas gracias Joe, eres mi salvador .BTW lo que es nginx -s en realidad mientras
ejecuto esto

Edité mi respuesta, me perdí un poco. nginx -s reload vuelve a cargar el proceso maestro: el reinicio del servicio básicamente hace lo mismo.
Joe Brailsford

¿Qué streamva a hacer el módulo? ¿Cuál es su uso
Satish

@JoeBrailsford ¿Hay alguna manera de automatizar este proceso? La instancia EC2 de bcoz no será permanente para EBS, y si pudiera, puede explicar por qué Steam Module debe ser estático para funcionar
Bikash

5

No tengo suficiente reputación para comentar la respuesta de Joe, así que escribe aquí:

En CentOS7, la ruta de los módulos ubicada en la carpeta lib64. Por lo tanto, debe agregar esta línea:

load_module '/usr/lib64/nginx/modules/ngx_stream_module.so';

2

Me he encontrado con este problema con nginxAmazon Linux ejecutándose en la instancia de AWS EC2, y mi /usr/lib64/nginx/modules/carpeta estaba vacía.

Instalé el módulo con yum:

yum install nginx-mod-stream

La streamdirectiva funciona ahora sin cambiar el nginx.conf.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.