Linux 源码编译安装Nginx 服务器

Nov 16, 2017 阅读(100)

标签: Nginx

前言

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科)

安装前准备

我们使用Nginx 常需要使用以下模块的,相应的模块安装程序可以自行去官网上下载最近的安装包来安装:

一些是我官网上找到的依赖模块下载:

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.gz
wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz

依赖模块的安装

 在上一步已经将需要依赖的模块安装程序都下载下来啦,接下来就是安装依赖模块:

tar -zxvf openssl-1.1.0g.tar.gz         #解压缩
cd openssl-1.1.0g/                      #进入到解压缩目录中
ls                                      #查看目录内容找到对应编译安装前检查准备程序
./Configure                             #执行编译安装前的检查安装准备程序
make && make install                    #编译安装

注:相应的openssl和pcre安装方式也是一样的,安装历史如下图:

image.png

安装Nginx

到Nginx 官网(http://nginx.org/)下载Nginx 应用程序,解压缩、执行 configure、make && make install 安装,值得注意的是我们常常想自定义Nginx 安装到指定的目录中,以此在执行 configure 时需要 指定 --prefix = /nginx程序期望安装的位置  参数

wget http://nginx.org/download/nginx-1.12.2.tar.gz     # 下载安装程序
tar -zxvf nginx-1.12.2.tar.gz                        # 解压缩
cd nginx-1.12.2/
./configure --prefix=/opt/nginx-1.12.2                 # --prefix 指定安装到/opt/nginx-1.12.2目录中去
make && make install                                   # 编译安装

image.png

若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

当然如果安装Nginx时不想装相应的依赖模块,则在执行 configure 时使用以下参数关闭模块的依赖即可:

./configure --prefix=/opt/nginx --without-http_rewrite_module --without-http_gzip_module

注:configure 执行参数可以执行  ./configure --help 来查看帮助文档。

Nginx 基本操作

启动Nginx

命令: nginx [-c 配置文件]

含义:启动nginx,不指定配置文件的话则在默认路径下找配置文件。

例如:nginx -c /path/to/nginx.conf

检查nginx配置文件

命令: nginx -t [-c 配置文件]

含义:检查nginx的配置文件是否正确,不指定配置文件的话则在默认路径下找配置文件。

例如: nginx -t -c /path/to/nginx.conf

重新加载配置文件

命令:nginx -s reload  

含义:修改配置后重新加载生效

关闭nginx

nginx -s stop                 : 快速停止nginx

nginx -s quit                  : 完整有序的停止nginx

kill -QUIT 主进程号         : 从容停止Nginx

kill -TERM 主进程号        : 快速停止Nginx

pkill -9 nginx                  : 强制停止Nginx

kill  `cat /usr/local/nginx/logs/nginx.pid`     :杀死nginx进程

查询nginx进程

命令:ps -ef | grep nginx

含义:查看系统所有的进程【ps -ef】并筛选出nginx的进程【grep nginx】

重启Nginx

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`


相关资料

Nginx 官网文档翻译: http://tengine.taobao.org/nginx_docs/cn/

Tengine 文档:http://tengine.taobao.org/documentation_cn.html