ubuntu18.04安装nginx1.16.1(源码编译安装)

Posted by D on February 25, 2020

1.安装依赖

1.1 更新apt-get

sudo apt-get update && sudo apt-get upgrade

1.2 安装编译依赖包
1.2.1 安装build-essential包

sudo apt-get install build-essential

该命令安装了一组新的包,包括gcc,g++,make.
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境.

1.2.2 安装libtool

sudo apt-get install libtool

GNU libtool是通用库支持脚本.它将共享库的使用隐藏在一个一致的可移植的接口后面.

1.3 安装pcre依赖库

sudo apt-get install libpcre3 libpcre3-dev

pcre是一个Perl库,包括perl兼容的正则表达式库.nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库.

1.4 安装zlib依赖库

sudo apt-get install zlib1g-dev

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库.

1.5 安装SSL依赖库

sudo apt-get install libssl-dev

openssl是一个强大的安全套接字层密码库,囊括主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用.nginx不仅支持http协议,还支持https(即在SSL协议上传输http),所以需要在linux安装openssl库.

2.安装nginx

2.1 从官网下载稳定版本nginx1.16.1

sudo apt-get install wget
sudo wget http://nginx.org/download/nginx-1.16.1.tar.gz

2.2 解压且进入解压目录

sudo tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1

2.3 配置且将nginx安装到/usr/local/nginx目录

2.3.1 生成Makefile

./configure --prefix=/usr/local/nginx \
--with-pcre \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gunzip_module \
--with-http_gzip_static_module 

configure命令支持的参数及参数的作用:

参数 作用
--prefix 定义保存nginx的目录
--with-pcre 强制使用PCRE库
--with-http_ssl_module 支持构建将SSL/TLS协议支持添加到流模块的模块
--with-http_v2_module 支持构建支持HTTP2的模块.这个模块默认是不构建的.
--with-http_gunzip_module 支持为不支持gzip编码方法的客户端构建ngx_http_gunzip_module模块,该模块使用 Content-Encoding:gzip解压缩响应。 默认情况下未构建此模块。
--with-http_gzip_static_module 支持构建ngx_http_gzip_static_module模块,该模块支持发送扩展名为.gz的预压缩文件,而不是常规文件。 默认情况下未构建此模块。
其他参数 官方文档:Building nginx from Sources

2.3.2 编译

make 

2.3.3 安装(需要root权限)

sudo -i  
make install

3.启动nginx

3.1 检测nginx配置文件语法是否正确
3.1.1 方式1:指定需要检查的配置文件

sudo /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

3.1.2 方式2:不加-c参数,默认检测nginx.conf配置文件

sudo /usr/local/nginx/sbin/nginx -t

检测成功:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

3.2 启动nginx

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

-c是指定配置文件路径,不加的话,nginx会自动加载默认路径的配置文件,可通过-h查看帮助命令.

3.3 查看nginx进程

ps -ef|grep nginx

4.关闭nginx

有两种方式:
4.1 方式1:快速停止

sudo /usr/local/nginx/sbin/nginx -s stop

这种方式想当于先查出nginx进程id再用kill命令强制杀掉进程,不太友好.

4.2 方式2:平缓停止

sudo /usr/local/nginx/sbin/nginx -s quit

此方式是指允许nginx服务将当前正在处理的网络请求处理完成,但不在接收新的请求,之后关闭连接,停止工作.

5.重启nginx

5.1 方式1:先停止再启动

sudo /usr/local/nginx/sbin/nginx -s quit
sudo /usr/local/nginx/sbin/nginx 

5.2 方式2:重新加载配置文件

sudo /usr/local/nginx/sbin/nginx -s reload

通常我们使用nginx修改最多的便是其配置文件nginx.conf,修改之后想让配置文件生效而不用重启nginx,便可以使用此命令.

参考:
官方文档:Building nginx from Sources
nginx详解
Nginx(一)——简介与安装
ubuntu18.04 lnmp编译安装

: