背景:nginx需要配置一个代理转发,比如接收到6379端口之后,转发到其他url。这种情况比较适用于,办公室研发需要连接redis,但是redis的网络没有公网端口,需要配置一个nginx接受公网流量,转发redis。
在nginx简单配置了之后,如:
stream {
server {
listen 6379;
proxy_pass nova-redis.0bawch.ng.0001.usw2.cache.amazonaws.com:6379;
}
}
进行nginx的配置检查,报错:
sudo nginx -t
nginx: [emerg] unknown directive "stream" in /etc/nginx/nginx.conf:33
nginx: configuration file /etc/nginx/nginx.conf test failed
这里的意思是说,nginx没有关于"stream"的mod,只需要下载安装一个就行了:
sudo yum install nginx-mod-stream -y
再次检查配置,发现成功了。问题解决。
问题验证,如果再nginx -s reload重启nginx的时候,发现无法重启,或者没有nginx在启动。
建议直接找出Nginx进程的Pid,kill -9 杀掉。然后通过/user/sbin/nginx启动。
ec2-user@ip-10-0-6-209 ~]$ sudo nginx -s reload
[ec2-user@ip-10-0-6-209 ~]$ sudo /usr/sbin/nginx