Nginx 编译和安装

Nginx Linux 版本的编译和安装

准备工作

为了编译 Nginx 源代码,我们需要标准的GCC编译器。
除此之外,我们还需要 Automake 工具,以完成自动创建 Makefile 的工作。
由于 Nginx 的一些模块需要依赖其他第三方库,通常有 pcre 库(支持 rewrite 模块)、zlib库(支持gzip模块)和 openssl 库(支持 ssl 模块)等。
如果系统没有安装以上提到软件和第三方库,可以进行在线安装:

yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open open-devel
到此,就完成了编译和安装 Nginx 服务器软件的环境准备工作。

Nginx 软件的自动脚本
Nginx 的官方下载网站为: http://nginx.org/en/download.html。
这里 我是通过

wget http://nginx.org/download/nginx-1.12.2.tar.gz
下载到 新建的目录 nginx_1122

下载后 解压 Nginx 归档:

# tar xf nginx-1.12.2.tar.gz
# cd nginx-1.12.2
# ls -l
total 704
drwxr-xr-x. 6 1001 1001   4096 Jan 25 09:44 auto
-rw-r--r--. 1 1001 1001 278202 Oct 17 13:16 CHANGES
-rw-r--r--. 1 1001 1001 423948 Oct 17 13:16 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 Jan 25 09:44 conf
-rwxr-xr-x. 1 1001 1001   2481 Oct 17 13:16 configure
drwxr-xr-x. 4 1001 1001     72 Jan 25 09:44 contrib
drwxr-xr-x. 2 1001 1001     40 Jan 25 09:44 html
-rw-r--r--. 1 1001 1001   1397 Oct 17 13:16 LICENSE
drwxr-xr-x. 2 1001 1001     21 Jan 25 09:44 man
-rw-r--r--. 1 1001 1001     49 Oct 17 13:16 README
drwxr-xr-x. 9 1001 1001     91 Jan 25 09:44 src
#
Nginx 源代码的编译需要使用 configure 脚本自动生成 Makefile 文件。使用以下命令配置并生成 Makefile 文件:

# ./configure --prefix=/Nginx     //编译配置
--prefix 指定了 Nginx 软件的安装路径为新建的 Nginx 目录。
其他的设置使用默认设置。

Nginx 源代码的编译和安装
 得到了 Nginx 软件的 Makefile 文件后,我们就可以编译源代码了。使用 make 命令进行编译:

# make
我们可以在屏幕上看到 Nginx 源代码编译的全过程。
编译顺利完成以后,使用 make 的 install 命令安装 Nginx 软件:

# make install
到此,就安装好了一个基本的 Nginx 服务器,其安装路径为/Nginx 目录。
 

接下来是 Nginx 的启停控制 ……
Nginx 服务的启停控制
在 Linux 平台下,控制 Nginx 服务的启停有不止一种方法。

Nginx 服务的信号控制
 Nginx 服务在运行时,会保持一个主进程和一个或多个worker process 工作进程。我们通过给 Nginx 服务的主进程发送信号就可以控制服务的启停了。那么,如何给主进程发送信号呢?首先要知道主进程的进程号 PID。
  获取PID有两个途径。一个是,在 Nginx 服务启动以后,默认在 Nginx 服务器安装目录下的 logs 目录中会产生文件名为 nginx.pid 的文件,此文件中保存的就是 Nginx 服务主进程的 PID。这个文件的存放路径和文件名都可以在 Nginx 服
务器的配置文件中进行配置。

当前 Nginx 服务主进程 PID 为 40847:
# cat nginx.pid
40847
第二个获取 Nginx 服务主进程 PID 的办法是使用 Linux 平台下的查看进程的工具 ps,使用方法是:
 
# ps -ef | grep nginx
root      40847      1  0 12:34 ?        00:00:00 nginx: master process ./nginx
nobody    40848  40847  0 12:34 ?        00:00:00 nginx: worker process
root      45140  44825  0 14:33 pts/0    00:00:00 grep --color=auto nginx
Nginx 服务主进程能够接收的信号如下所列:
信号作用   
TERM 或 INT快速停止 Nginx 服务
QUIT平缓停止 Nginx 服务
HUP使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的“平滑重启”
USR1重新打开日志文件,常用于日志切割
USR2使用新版的 Nginx 文件启动服务,之后平缓停止原有 Nginx 进程,也就是所谓的“平滑升级”
WINCH平缓停止 worker process,用于 Nginx 服务器平滑升级
向 Nginx 服务主进程发送信号有两种方法。一种是使用 nginx 二进制文件(暂不说明),另一种是 使用 kill 命令发送
信号其用法是:
kill SIGNAL PID

SIGNAL,用于指定信号,即上面的表中的一个。
PID ,指定 Nginx 服务主进程的 PID,也可以使用 nginx.pid 动态获取 PID 号:
kill SIGNAL 'filepath'

其中,filepath 为 nginx.pid 的路径。

Nginx 服务的启动
……




本文章内容主要摘自 《Nginx 高性能Web服务器详解》一书。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值