你们好,我是金金金。
场景
重启nginx失败,报错如下:
- 报错意思也非常明显了:
nginx.conf:89中的[emerg]未知指令“stream”
排查
先来看一下我的
nginx.conf
配置
- 配置非常简单,就是在
http
的平级 加了一个stream
配置,启动过程中报错未知指令,看意思就能知道并不能识别出stream
这个配置字段
造成error的原因
自从 nginx 1.9 以后 nginx 通过 stream 模块实现了 tcp 代理功能,无需其他软件配合即可实现四层代理和七层代理,即:访问该服务器的指定端口,nginx 就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者。这是一个非常实用的功能。
# 查看 nginx 编译配置信息(V 大写)
nginx -V
输出信息
configure arguments
中带有--with-stream
参数即可代理 TCP 协议。Nginx的stream模块默认不会自动安装,还需要额外手动安装。
解决
# 安装 stream 模块
yum install nginx-mod-stream -y
- 安装成功,重启
nginx
看下状态,成功~
总结
自动安装是没有携带的,没有手动安装
stream
模块导致找不到相关指令,安装即可~
- 编写有误还请大佬指正,万分感谢。