unknown directive "stream" in /etc/nginx/nginx.conf:86
Solution 1:
The stream module is being added as dynamic, as per:
--with-stream=dynamic
You need it to be 'static' - so load the module directly. To do so, add the following at the very top of your nginx.conf:
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
Then:
nginx -t
If all is well:
nginx -s reload
service nginx restart
Edit:
-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
Solution 2:
Have not enough reputation to comment Joe's answer, so writing here:
On CentOS7, the modules path located under lib64 folder. So, you need to add this line:
load_module '/usr/lib64/nginx/modules/ngx_stream_module.so';
Solution 3:
I have come across this issue with nginx
on Amazon Linux running on AWS EC2 instance, and my /usr/lib64/nginx/modules/
folder was empty.
I installed the module with yum
:
yum install nginx-mod-stream
The stream
directive works now without changing the nginx.conf
.