一,介绍
一些Linux发行版和BSD的各个版本的安装包仓库中包含了编译后的二进制Nginx软件。比如centos7可以使用yum -y install nginx命令进行安装。但是这些预先编译好的安装包版本一般都比较低,也不能满足个性化需求,所以大多数情况下还是推荐使用源码编译安装的方式。
二,安装步骤
1,环境准备
安装nginx前需要先安装以下工具或第三方库。
- gcc和gcc-c++:编译器
- Autoconf和Automake:用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。
- zlib库:支持Nginx的gzip模块。
- pcre库:支持Nginx的rewrite模块
- openssl库:提供ssl功能
命令:
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
2,下载源码
Nginx官网提供了三个类型的版本:
- Mainline version:最新版本
- Stable version:稳定版本
- Legacy versions:历史版本
最新版本可能会有一些没有被解决的bug,历史版本功能没有稳定版本的完善,所以在新生产环境下我们一般选择最新稳定版(图中:nginx-1.20.2)。
下载安装包并解压到当前目录:
yum -y install wget
wget https://nginx.org/download/nginx-1.20.2.tar.gz
tar xf nginx-1.20.2.tar.gz
3,配置编译选项
进入解压后的包目录,使用ls命令可以看到有个configure可执行文件,我们可以使用./configure命令加上编译选项实现个性化安装。./configure --help命令可以显示所以可选择的编译选项。如果不加任何选项,会默认策略进行安装。
configure编译选项举例:
- --prefix=<path>:安装路径,默认为/usr/local/nginx
- --user=<user>:在nginx.conf中没指定user指令的情况下,默认的Nginx使用用户。如果没有指定默认为nobody
- --group=<group>:指定Nginx使用的组
- --with-http_ssl_module:开启http ssl模块,使Nginx可以支持HTTPS请求。这个模块需要openssl库的支持。
- --with-http_v2_module:启用ngx_http_v2_module模块
- --with-threads:使支持线程池
- --with-http_stub_status_module:启用ngx_http_stub_status_module模块
- --with-stream:启用ngx_stream_core_module,使支持TCP/UDP代理
- --with-http_geoip_module:启用ngx_http_geoip_module模块
- --with-http_gunzip_module:启用ngx_http_gunzip_module模块
命令:
./configure --prefix=/usr/local/nginx1_tq --user=tq --group=tq --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_geoip_module --with-http_gunzip_module
4,编译
经过上一步的./configure命令后,会在同目录下生成一个Makefile文件,此时我们就可以使用make命令来编译和安装了。
yum -y install make
make
sudo make install
5,设置环境变量
echo "PATA=$PATH:/usr/local/nginx/sbin" >> $HOME/.bashrc
# /usr/local/nginx/sbin使nginx可执行文件所在的目录,自行更改
安装完成!