nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf

在nginx中做tcp端口转发时,在nginx中加入

# 四层负载不在http模块里面,和http模块同级别
stream {
    upstream mysql {
	server 127.0.0.1:3306;
    }

    upstream redis {
        server 127.0.0.1:6379;
    }

    upstream mongodb {
        server 127.0.0.1:27017;
    }

    server {
        listen 61306;
        proxy_connect_timeout  10s;
        proxy_timeout  30s;
        proxy_pass  mysql;
    }

    server {
        listen 61379;
        proxy_connect_timeout  10s;
        proxy_timeout  30s;
        proxy_pass  redis;
    }

    server {
        listen 27018;
        proxy_connect_timeout  10s;
        proxy_timeout  30s;
        proxy_pass  mongodb;
    }

}

nginx默认不带stream的,或者默认不加载stream,直接添加可能会有如下错误提示:

image

解决方法:

网上的解决方案都是说要根据nginx源码重新编译什么的,这个不太适合与正在运行的项目,可以采用以下方案实施

1)第一步:yum -y install epel-release2)第二步:yum -y install nginx-all-modules.noarch

执行完成后,会得到如下内容:
image

查看nginx.conf是否有此项:

include /usr/share/nginx/modules/*.conf;
# /usr/share/nginx/modules 应该包含有 mod-stream.conf

如果没有,可手动增加至nginx.conf:

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

配置好后:
image

就可以执行nginx重载了

posted @   ddgo's  阅读(1748)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 我干了两个月的大项目,开源了!
· 千万级的大表,如何做性能调优?
· 盘点!HelloGitHub 年度热门开源项目
· Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,
· 你所不知道的 C/C++ 宏知识——基于《C/C++ 宏编程的艺术》
.
点击右上角即可分享
微信分享提示