directive inconnue «stream» dans /etc/nginx/nginx.conf:86

11

J'ai nginx/1.12.0et selon le document, il contient un streammodule. J'ai installé nginx avec les commandes suivantes.

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

J'ai essayé d'ajouter la directive stream dans nginx.conf:

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

mais lorsque je redémarre nginx, j'obtiens une erreur inférieure dans les nginxjournaux

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

J'ai googlé cette erreur et certaines personnes disent que je dois installer / configurer ce module séparément. Certains disent qu'il est livré avec la nginxversion 1.12.0. Quelqu'un peut-il suggérer comment installer / configurer ce module sur déjà installé nginx?

Cordialement VG

user3332404
la source
Nginx démarre-t-il avec le module de flux activé? Veuillez publier la sortie de nginx -V.
Joe Brailsford
Merci Joe, j'ai donc mis à jour ma question et collé ma sortie nginx -V.
user3332404
Sous / usr / lib / nginx / modules Je peux voir les modules suivants 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

Réponses:

21

Le module de flux est ajouté en tant que dynamique, conformément à:

--with-stream=dynamic

Vous avez besoin qu'il soit «statique» - chargez donc le module directement. Pour ce faire, ajoutez ce qui suit tout en haut de votre nginx.conf:

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

Ensuite:

nginx -t

Si tout va bien:

nginx -s reload
service nginx restart

Éditer:

-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
la source
Impressionnant!! plus d'erreurs. Merci beaucoup Joe, vous êtes mon sauveur .BTW ce qui est nginx -s en fait lors de l'exécution de cela, je suis en dessous de l'erreur nginx: l'option "-s" nécessite un paramètre
user3332404
J'ai édité ma réponse, j'ai raté un peu. nginx -s reload recharge le processus maître - le redémarrage du service fait essentiellement la même chose.
Joe Brailsford
que streamva faire le module? à quoi ça sert
Satish
@JoeBrailsford Existe-t-il un moyen d'automatiser ce processus L'instance bcoz EC2 ne sera pas permanente pour EBS, aussi si vous le pouvez, expliquez pourquoi le module Steam doit être statique pour fonctionner
Bikash
5

N'ont pas assez de réputation pour commenter la réponse de Joe, alors écrivez ici:

Sur CentOS7, le chemin des modules situé sous le dossier lib64. Donc, vous devez ajouter cette ligne:

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

J'ai rencontré ce problème avec nginxsur Amazon Linux fonctionnant sur une instance AWS EC2, et mon /usr/lib64/nginx/modules/dossier était vide.

J'ai installé le module avec yum:

yum install nginx-mod-stream

La streamdirective fonctionne maintenant sans changer le nginx.conf.

préteur
la source