本文安装nginx使用centos7作为安装环境
准备工作
nginx依赖以下模块,因此安装nginx之前需要先将这些模块下载到本机。
gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
可以使用yum安装上述模块。
# 方式1:一次安装所有
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 方式2:分多次安装
yum install -y gcc-c++
yum install -y pcre
yum install -y pcre-devel
yum install -y zlib
yum install -y zlib-devel
yum install -y openssl
yum install -y openssl-devel
源码安装nginx
进入nginx官网的下载页面:https://nginx.org/en/download.html 。 下载需要的nginx版本。
小提示:
- Mainline version: 主线版, 是活跃的开发分支,会添加最新功能和错误修复。其版本号的第二位用奇数表示. 例如1.23.4。
- Stable version: 稳定版, 主要接收针对高严重性错误的修复,但不会加入新功能。其版本号的第二位用偶数表示,例如 1.24.0。
- 下载好后的文件是:nginx1.23.4.tar.gz,将这个文件放到centos7的机器上,我用root用户登录,放到了/root/目录下。
解压
登录centos7机器上,解压nginx1.23.4.tar.gz
cd /root
tar -xf nginx-1.23.4.tar.gz
执行configure命令
按照需要执行下面其中一个方式。
cd /root/nginx-1.23.4
# 方式1:若想使用默认的配置,执行configure时不必带有参数
./configure
# 方式2:使用自定义的配置
./configure \
--prefix=/usr/local/nginx \ # 设置nginx的安装目录
--sbin-path=/usr/local/nginx/sbin/nginx \ # 指定执行程序文件存放位置
--modules-path=/usr/local/nginx/lib64/modules \ # 第三方模块的存放路径
--conf-path=/usr/local/nginx/nginx.conf \ # 配置文件存放位置
--error-log-path=/var/log/nginx-error.log \ # 错误日志存放位置
--http-log-path=/var/log/nginx-access.log \ # http访问日志
--pid-path=/var/run/nginx.pid \ # pid进程文件
--lock-path=/var/run/nginx.lock \ # lock文件
--user=nginx \ # nginx运行时的用户
--group=nginx # nginx运行时的用户组
# 方式2的另一种写法,写在一行
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --modules-path=/usr/local/nginx/lib64/modules --conf-path=/usr/local/nginx/nginx.conf --error-log-path=/var/log/nginx-error.log --http-log-path=/var/log/nginx-access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx
编译
make
安装
make install
执行完后,nginx就安装在了/usr/local/nginx里。之后就可以使用nginx命令了,例如:
# 启动nginx
/usr/local/nginx/sbin/nginx
# 直接关闭nginx,无论进程是否处理完,直接关闭
/usr/local/nginx/sbin/nginx -s stop
# 优雅地关闭nginx,等待进程处理完毕再关闭进程
/usr/local/nginx/sbin/nginx -s quit
# 重新加载nginx(修改ngxin配置之后需要执行该命令)
/usr/local/nginx/sbin/nginx -s reload
# 检查nginx配置文件的语法是否正确
/usr/local/nginx/sbin/nginx -t