Nginx是一款轻量级的web服务器和反向代理服务器,它使用了epoll的I/O模型,也就是事件触发I/O模型,减少了进程的生成切换所消耗的系统资源(CPU的压力减少,内存的占用也会减少),可以达到很高的并发请求。它是一款开源软件,企业成本降低,它的使用配置也比较简单,同时支持Rewrite,作为反向代理的时候可以检查后端的Web服务器的健康状况,能够支持热部署。
环境是Centos系统,通过www.nginx.org下载需要的源码包
一些准备工作编译安装需要的环境
yum -y install gcc gcc-c++ autoconf automake
groupadd �Cr nginx
useradd �Cs /sbin/nologin �Cg nginx nginx
Nginx的一些模块需要第三方库的支持,gzip模块需要zlib库,rewrite模块需要pcre库,ssl模块需要openssl库等
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
然后可以编译安装了
tar zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure
--prefix=/usr #安装路径
--conf-path=/etc/nginx/nginx.conf #配置文件路径
--sbin-path=/usr/sbin/nginx #启动文件路径
--error-log-path=/var/log/nginx/error.log #错误日志路径
--pid-path=/var/run/nginx/nginx.pid #主进程号路径
--lock-path=/var/lock/nginx.lock #nginx.lock文件路径
--user=nginx --group=nginx #进程运行使用的身份
--with-http_ssl_module #启用ssl模块
--with-http_flv_module #启用flv模块
--with-http_gzip_static_module #启用gzip模块
--http-log-path=/var/log/nginx/access.log #日志文件路径
--http-client-body-temp-path=/var/tmp/nginx/client #客户端请求缓存文件存放路径
--http-proxy-temp-path=/var/tmp/nginx/proxy #反向代理缓存文件存放路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi #FastCGI缓存文件存放路径
make && make install
Nginx启动,停止,平滑重启,平滑升级
/usr/sbin/nginx #启动 ss -tnlp #去查看下服务是否启动 一般通过控制主进程来停止Nginx,进程号前边编译时定义了,cat /var/run/nginx/nginx.pid就得到主进程号,下边停止Nginx kill -QUIT `cat /var/run/nginx/nginx.pid` #从容停止Nginx kill -TERM `cat /var/run/nginx/nginx.pid` #快速停止Nginx kill -INT `cat /var/run/nginx/nginx.pid` #快速停止Nginx pkill -9 nginx #强制停止所有Nginx进程 配置文件改变需要重启服务,先检查配置文件是否正确 /usr/sbin/nginx -t kill -HUP `cat /var/run/nginx/nginx.pid` #平滑重启 顺便再说下其他的信号 USR1 #重新打开日志文件,切割日志时需要 平滑升级Nginx 编译安装新版本的Nginx,到旧版本目录,之前最好备份下旧的执行文件。 kill -USR2 旧版本主进程号 #主进程号被重命名.pid.oldbin 执行新版本的可执行文件,这时新旧版本Nginx同时运行,然后停止旧版本 kill -WINCH 旧版本的主进程号 #工作进程从容关闭 kill -QUIT 旧版本主进程号