有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理、即时通讯、文件下载、流媒体服务等功能,
如果已经安装好了Nginx有不想重新安装覆盖的前提下如何新增模块呢?下面通过安装nginx-upstream-fair作为示例进行说明,
安装其他模块也是同样的道理。
我下文中的 插件 跟 模块一个意思 :)
1. 预备开始: nginx version: nginx/1.6.3
2. 查看现有nginx版本 和 nginx模块
3. 下载跟现有 nginx 版本一样的源文件
4. 下载插件,所有插件一个套路 例如:https://github.com/gnosek/nginx-upstream-fair
5. nginx源文件解压缩,
a. 生成 Makefile,为下一步的编译做准备,注意这里很关键,要加上之前已经安装好的模块。
b. 开始编译,但别安装 (make install会直接覆盖安装)
6. 替换之前 nginx目录下的 nginx执行文件
7. 配置文件修改, 重启,查看
demo: upstream-fair 插件, 动态调度算法
1. 查看版本
sbin/nginx -v
nginx version: nginx/1.6.3
2. 先查看原有nginx的配置参数并拷贝出来
sbin/nginx -V
[root@localhost nginx]# sbin/nginx -V
nginx version: nginx/1.6.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-http_stub_status_module --with-http_ssl_module
3. 下载要安装的nginx插件 nginx-upstream-fair 并且解压缩
4. 下载相同版本的nginx源文件 http://nginx.org/en/download.html
1> 解压缩,进入目录
2> 生成 Makefile,为下一步的编译做准备,注意这里很关键,要加上之前已经安装好的模块。
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-http_stub_status_module --with-http_ssl_module --add-module=/home/oldboy/tools/nginx-upstream-fair-master
红色部分是:已经安装好的模块
蓝色部分是: 我们要添加的, /home/oldboy/tools/nginx-upstream-fair-master 这个目录是我们要安装的插件目录
3> 开始编译,但别安装 (make install会直接覆盖安装)
#make
5. 1> 现在版本的 application/nginx/sbin/nginx 源文件,备份一下 (可以省略)
mv application/nginx/sbin/nginx application/nginx/sbin/nginx.ori
2> 用新编译好的 nginx 执行文件, 替换一下 现有版本的 nginx 执行文件
cp -f objs/nginx /application/nginx/sbin/nginx
6. 查看现在的 nginx 已安装的模块
/application/nginx/sbin/nginx -V
7. 配置 nginx-upstream-fair ,
## 负载均衡
upstream www_server_pools {
fair;
server 192.168.190.131:80;
server 192.168.190.132:80;
}
#blog
server {
listen 80;
server_name www.blog.com;
location / {
root html/blog;
index index.html index.htm;
proxy_pass http://www_server_pools; //反向代理
}
}
--------------------------------------------------------------------------------
完整 命令如下:
rz linux 上传文件命令 我的插件是下载到本地后上传服务器的
unzip nginx-upstream-fair-master.zip 解压
mkdir tmp 创建临时目录,给新编译的 nginx使用
cp nginx-1.6.3.tar.gz tmp/
cd tmp/
tar xf nginx-1.6.3.tar.gz tar解压
cd nginx-1.6.3
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/ --with-http_stub_status_module --with-http_ssl_module --add-module=/home/oldboy/tools/nginx-upstream-fair-master
make
cd objs/ 查看新编译好的 nginx 执行文件
cd ../
cp -f objs/nginx /application/nginx/sbin 新编译的 nignx 替换 现有版本的 nginx
cd /application/nginx
vim conf/extra/blog.conf 修改 nginx 配置文件,这里给出 fair的配置
upstream www_server_pools {
fair;
server 192.168.190.131:80;
server 192.168.190.132:80;
}
#blog
server {
listen 80;
server_name www.blog.com;
location / {
root html/blog;
index index.html index.htm;
proxy_pass http://www_server_pools;
}
}
测试配置文件 并 重启nginx
./sbin/nginx -t
./sbin/nginx -s reload
搞定:?