Linux下源码安装nginx-1.9.11

来源:互联网 发布:java 版本 编辑:程序博客网 时间:2024/06/03 22:42

原文地址: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 
信号来达到相同的效果。


0 0
原创粉丝点击