添加nginx中的stream模块

本文适用于1.9.0以上版本的nginx,介绍如何加载stream模块。需以root用户编译加载–with-stream,然后备份原有nginx文件并替换为编译后的文件。在nginx.conf中添加模块内容,但过程中可能会遇到线程数不足、打开文件数限制及pid文件缺失等问题,通过修改配置文件和系统参数可逐一解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:
1.nginx从1.9.0开始,新增加了一个stream模块,所以本文适用于1.9.0版本以上的nginx。

2.没有特殊标注需要root的用普通nginx用户就可以,比如你在a用户下安装nginx 那就su - a 就可以啦,但是编译的话一定要用root,不然会报权限错误问题。
3.具体问题,具体分析,以下内容仅供参考。

以下正文:

模块加载位置(root用户加载):

Cd  /nginx-1.21.0

加载模块 添加–with-stream

./configure --prefix=/home /nginx/nginx --add-module=/home /nginx-rtmp-module-master --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/home /openssl-1.1.1b --with-pcre=/home /pcre-8.43 --with-stream

加载完成后进行make编译
千万不要进行make install !!!

完成编译后 现将之前的nginx文件进行备份

Cd /home/nginx/nginx/sbin(启动文件位置)
Cp nginx nginx.bak.xxx

再将编译好的nginx文件复制过来(编译文件)

Cp  /nginx-1.21.0/objs/nginx .

因为加的是–with-stream 所以要将nginx.conf修改一下 添加上模块内容

Cd /home /nginx/nginx/conf
Vi nginx.conf

添加需要的内容,格式如下:

stream{
..........
}

重启nginx(/home/nginx/nginx/sbin)

./nginx -s reload

诶嘿!报错了.
线程数不够,具体报错忘截图了。
解决如下:
修改nginx.conf

Worker_connections 1024  改成102400

再次启动,诶嘿,又报错了
nginx 出错:socket() failed (24: Too many open files) while connecting to upstream
修改linux打开文件句柄数,编辑vi /etc/security/limits.conf(需要root修改),添加

   <domain>      <type>          <item>         <value>
*                soft             nofile          204800
*                hard            nofile          204800

修改nginx打开文件数, 编辑nginx.conf,添加worker_rlimit_nofile值

worker_rlimit_nofile 20480;

再再次启动,诶嘿,又又报错了
nginx: [error] open() “/run/nginx.pid” failed (2: No such file or directory)(类似错误,就是找不到nginx.pid文件)

这是/logs下没有nginx.pid文件
在/home /nginx/nginx/sbin 执行

./nginx -c /home /nginx/nginx/conf/nginx.conf

再再再次执行,好了!!

查看页面,没有问题。

添加模块成功!!!

总结:仅仅只是添加一个模块,就会出现很多错误,但只要细心观察,耐心解决,还有什么解决不了的呢。
生活愉快~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值