您的位置:首页 > 运维架构 > Nginx

Linux下源码安装nginx-1.9.11

2017-04-25 11:05 295 查看
原文地址:http://blog.csdn.net/hsd2012/article/details/51376674


环境

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
1
1

当然还需要安装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
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13

我的配置信息如下
./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
1
1






执行安装

命令如下,当然也可以分开执行 

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 

信号来达到相同的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: