CentOS7 在已安装好的Nginx
增加nginx-push-stream-module
目前有很多第三方SDK可以实现服务器向app推送消息,大多都是用来推送新闻,推送推荐。今天想尝试一下使用websocket来实现在线聊天,由于我服务器配置的环境是nginx1.12.2+mysql5.7+tomcat9.0,所以需要配置为已安装的nginx增加nginx-push-stream-module推送流模块。
参考:
如何在已经安装好的Nginx上增加新模块 https://www.liminghulian.com/article/58
170217、nginx 安装时候报错:make: *** No rule to make target `build', needed by `default'. Stop.
https://www.cnblogs.com/zrbfree/p/6419043.html
make: *** No rule to make target `build', needed by `default'. Stop.
http://blog.csdn.net/csdnhadoop/article/details/51112430
1
关于nginx-push-stream-module
nginx的Push Stream Module是使用http技术来实现连接管道,在项目里主要用于即时消息的推送。Push Stream Module主要采用pub/sub模式来管理长连接,用户可以申请连接通道,通道建立订阅该通道,消息推送者可以向连接通道发送消息,这样订阅该通道的所有用户都可以接收到该消息。利用 nginx-push-stream-module 可以实现基于AJAX的长轮询(long-polling)方式的服务器消息推送。
2
在已安装的nginx上
增加nginx-push-stream-module
第二步:使用git,直接克隆模块源码,如果未安装git可使用yum -y install git来安装git。模块源码地址:http://github.com/wandenberg/nginx-push-stream-module.git
git克隆指令:git clone http://github.com/wandenberg/nginx-push-stream-module.git
使用pwd指令可查看当前nginx-push-stream-module模块所在目录,将欲增加的nginx-push-stream-module模块路径定义为一个变量(此步骤非必要步骤,且定义的变量只能当前会话可用,只是为了后续操作方便)
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module
第三步:使用nginx -V查看当前已安装的nginx的配置参数并拷贝出来,【解压相同版本的nginx源码包(以前安装时的源码包),如果已经删除了课重新下载,版本相同即可(参考第一步)】
进入nginx的目录 cd nginx-1.12.2 进行配置
./configure --add-module=$NGINX_PUSH_STREAM_MODULE_PATH ***(其中***是前面记录的nginx原始的配置,这个务必加上)
编译 :make
不要执行make install避免覆盖,备份原来的nginx可执行文件
第四部:将编译好的nginx替换原来安装的nginx(可执行文件)
备份原来的nginx:mv /sbin/nginx /sbin/nginx_bak
将编译好的nginx复制到原始nginx的sbin目录:
cp objs/nginx /sbin/
nginx -V查看一下nginx的模块情况。
nginx -s reload 重新加载一下nginx即可。
3
make过程中遇到的坑
nginx 安装时候报错:make: *** No rule to make target `build', needed by `default'. Stop.
解决方法步骤:
1、安装GCC: yum install gcc
2、安装PCRE: yum install pcre pcre-devel
3、安装zlib: yum install zlib zlib-devel
4、yum install openssl openssl-devel
如果按以上步骤执行完成之后使用make编译nginx还是会报错,那么请检查你./configure的时候是否有错。
135编辑器
领取专属 10元无门槛券
私享最新 技术干货