环境
linux版本:centos6.5
通过 uname -a可以查看到linux系统版本信息如下:
Linux localhost.localdomain 2.6.32-279.el6.i686 #1 SMP Fri Jun 22 10:59:55 UTC 2012 i686 i686 i386 GNU/Linux
nginix版本如下
nginx-1.9.11.tar.gz
下载网站:http://nginx.org/download/
安装
需要安装zlib、openssl、pcre
zlib:Nginx提供gzip模块,需要zlib库支持。
openssl:Nginx提供SSL功能
pcre:支持地址重写rewrite功能
我通过检查,判断我的系统上已经按照了,这三个模块,此时我就不在安装了
如果,你的系统上,还没有安装着三个模块,可以通过yum安装,命令如下:
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
当然还需要安装gcc,autoconf和automake,一般系统会自带,安装命令如下:
yum -y install gcc gcc-c++ autoconf automake
创建用户与组
创建用户作为用于启动nginx进程的用户
解压
tar -zxvf nginx-1.9.11.tar.gz
解压后可以看到大致文件如下:
配置
首先我们可以通过./configure –help来查看配置信息
配置参数描述
--with-xxx 代表默认没有打开的功能
--without-xxx 代表默认打开的功能
--prefix=path 代表安装路径
--sbin-path=path sbin路径
--conf-path 配置文件
--pid-path 代表进程号保存文件
--error-log-path错误日志
--lock-path 锁文件
--user ps看到的启动进程用户
--group ps看到的启动进程用户所在组
--with-http_ssl_module
--with-http_flv_module
我的配置信息如下
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --error-log-path=/usr/local/nginx/log/error.log --pid-path=/usr/local/nginx/nginx.pid --lock-path=/usr/local/nginx/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module
执行安装
命令如下,当然也可以分开执行
make && make install
安装完成后如下图
安装好之后,可以查看安装目录如下
测试安装是否成功
启动nginx
首先我们可以看一下启动参数
、
启动直接运行sbin目录下的nginx,如果报错,那么说明服务器应该是启动了。
查看nginx进程,通过使用ps aux |grep nginx 可以查看,默认情况下启动了一个主进程和一个子进程。
当然可以通过判断80端口是否被nginx监听
此外,我们还可以通过浏览器访问
如果没有开启防火墙,是访问不到的,只能在本地访问。
看到这些,说明nginx安装已经完成了。
停止nginx
1.使用-s stop 可以强制停止Nginx 服务。
-s 参数其实是告诉Nginx 程序向正在运行的Nginx 服务发送信号量,Nginx 程序通过nginx.pid 文件中得到master 进程的进程ID,再向
运行中的master 进程发送TERM 信号来快速地关闭Nginx 服务。例如:
/usr/local/nginx/sbin/nginx -s stop
2.如果通过kill 命令直接向nginx master 进程发送TERM 或者INT 信号,效果是一样的
kill -s SIGTERM 6195
或者:
kill -s SIGINT 6195
3.优雅停止服务
如果希望Nginx 服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参数来停止服务
/usr/local/nginx/sbin/nginx -s quit
与快速停止Nginx 服务是有区别的。当快速停止服务时,worker 进程与master进程在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
使运行中的Nginx 重读配置项并生效
使用-s reload 参数可以使运行中的Nginx 服务重新加载nginx.conf 文件。例如:
/usr/local/nginx/sbin/nginx -s reload
事实上,Nginx 会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭,再重新启动Nginx 来实现这个目的。类似的,-s 是发送信号,仍然可以用kill 命令发送HUP
信号来达到相同的效果。