|
Nginx简介
Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器。它可以选择高效的epoll、kqueue、eventport作为网络I/O模型,在高并发的情况下,能够支持高达50000个并发连接数的响应,而CPU、内存待系统资源消耗却很低。
Nginx特点
高并发。理论测试可支撑5万并发,生产环境可支撑2-4万并发,是因为其采用epoll(Linux 2.6-Kernel)、kqueue(FreeBSD)网络I/O模型,而Apache采用的传统select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,比较耗资源。
内存消耗少
成本低廉
配置文件简单
支持Rwrite重写规则。能够根据域名、URL的不同,将不同的HTTP请求分到不同的后端服务器群组。
内置健康检查功能。如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端的访问。
节省带宽。支持GZIP压缩,可以添加浏览器本地缓存的Header头。
支持热布署。
在介绍Nginx配置之前,先来了解一下Nginx可以使用的信号控制
TERM,INT 快速关闭
QUIT 从容关闭
HUP 平滑重启,重新加载配置文件
USR1 重新打开日志文件,用于日志切割时
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
Nginx配置
1、下载
# http://nginx.org/download/nginx-1.2.8.tar.gz
2、安装。Nginx的一些模块需要第三方库的支持,如gzip需要zlib库;rewrite模块需要pcre库;ssl功能需要openssl库
# yum install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
# useradd -s /sbin/nologin nginx
# ./configure --prefix=/usr/local/nginx/ --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
# make && make install
3、Nginx启动
# /usr/local/nginx/sbin/nginx –c /usr/local/nginx/conf/nginx.conf
4、Nginx停止
# pkill -9 nginx ###强制停止所有Nginx进程,建议使用下面的方法来操作
或
# kill -WINCH `cat /usr/local/nginx/logs/nginx.pid`
# kill –QUIT `cat /usr/local/nginx/logs/nginx.pid`
5、Nginx平滑重启(重启前要对修改后的conf做测试)
# /usr/local/nginx/sbin/nginx –t –c /usr/local/nginx/conf/nginx.conf ### -t参数测试配置文件
# /usr/local/nginx/sbin/nginx –s reload –c /usr/local/nginx/conf/nginx.conf ###-s给主进程发送信号,可选参数stop、quit、reopen、reload
或
# kill –HUP nginx主进程号
6、Nginx的平滑升级
Nginx的升级0.8版本之前是不能通过make upgrade升级的,只能通过kill的控制信号来操作
方法一:
1>.下载新版本的nginx-1.3.15.tar.gz
2>.查看旧版本安装时的参数
# /usr/local/nginx/sbin/nginx –V
3>.重命名旧版本nginx可执行文件
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4>.解压并安装新版本nginx
# tar -zxvf nginx-1.3.15.tar.gz
# cd nginx-1.3.15/
# ./configure --prefix=/usr/local/nginx/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module ###这里的编译参数是通过-V得到的
# make && make install ###直接将新版本的nginx安装到旧版本目录
5>.通过USR2信号升级
# kill -USR2 `cat log/nginx.pid` ###旧版本nginx的主进程将重命名它的.pid为.oldbin
6>.启动新版本主进程
# /usr/local/nginx/sbin/nginx ###启动新版本的nginx,此时ps –ef可以看到有两个master、worker
7>.先关闭旧版本的工作进程,一段时间后,开关退出旧版本主进程
# kill –WINCH ‘cat log/nginx.oldbin’
# kill –QUIT ‘cat log/nginx.oldbin’
方法二:
1-4中的步骤是相同的,只是在最后执行完make操作后,不执行make install
5>.拷贝新版本源编译目录的下的nginx二进制文件至nginx可执行文件目录下
# cp -a objs/nginx /usr/local/nginx/sbin/
6>.执行升级操作
# make upgrade
7>.查看升级后的版本是否正确
# /usr/local/nginx/sbin/nginx -V ###发现版本已由原来的1.2.8升级成1.3.15
|
|
|
|
|
|
|