Nginx安装
一、安装准备
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
$ yum install gcc-c++
$ yum install pcre pcre-devel
$ yum install zlib zlib-devel
$ yum install openssl openssl--devel
二、安装Nginx
安装之前,最好检查一下是否已经安装有nginx
$ find -name nginx
如果系统已经安装了nginx,那么就先卸载
$ yum remove nginx
首先进入/usr/local目录
$ cd /usr/local
从官网下载最新版的nginx
$ wget http://nginx.org/download/nginx-1.7.4.tar.gz
解压nginx压缩包
$ tar -zxvf nginx-1.7.4.tar.gz
会产生一个nginx-1.7.4 目录,这时进入nginx-1.7.4目录
$ cd nginx-1.7.4
接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装
$ ./configure $默认安装在/usr/local/nginx
$ make
$ make install
如果没有报错,顺利完成后,最好看一下nginx的安装目录
$ whereis nginx
安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了。
到此,使用CentOS安装nginx已经完成了,其实看看还是蛮简单的。
三、启动/停止nginx
启动:/usr/local/nginx/sbin/ ./nginx
强制关闭:/usr/local/nginx/sbin/ ./nginx -s stop
重载配置(服务不会断开):/usr/local/nginx/sbin/ ./nginx -s reload
重启服务:service nginx restart
检查配置文件是否正确:./nginx -t
检查nginx版本信息:./nginx -v
./nginx -s quit:该命令会“优雅”地停止服务,首先会关闭监听端口,停止接受新的链接,然后把当前正在处理的链接全部处理完,最后再退出进程
========================================================
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
四、Nginx平滑升级
当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级
升级时包括以下步骤:
1)通知正在运行的旧版本Nginx准备升级,通过向Master进程发送USR2信号可达到目的,例如:
kill -s SIGUSR2 <nginx master pid>
这时,运行中的nginx会将pid文件重命名,如将/usr/local/nginx/logs/nginx.pid重命名为/usr/local/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。
2)启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法,这时通过ps命令可以发现新旧版本的Nginx在同时运行
3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕
五、Nginx和Apache的区别
在Apache上每个进程在一个时刻只处理一个请求,因此,如果希望Web服务器拥有并发处理的请求数更多,就要把Apache的进程或线程数设置得更多,通常会达到一台服务器
拥有几百个工作进程,这样大量的进程间切换将带来无谓的系统资源开销,而Nginx则不然,一个workder进程可以同时处理的请求数只受限于内存大小,而且在架构设计上,不
同的worder进程之间处理并发请求时几乎没有同步锁的限制,workder进程通常不会进入睡眠状态,因此,当Nginx上的进程数与CPU核心数相等时(最好每一个workder进程都
绑定特定的CPU核心),进程间切换的代码是最小的。