安装所需依赖库
- 编译 Nginx 需要 gcc 环境
yum install -y gcc gcc-c++
- Nginx 第三方 gzip 模块需要 zlib 库
yum install -y zlib zlib-devel
zlib 库用于对 HTTP 包的内容做 gzip 格式的压缩,如果我们在 nginx.conf 中配置了 gzip on,并指定对于某些类型(content-type)的 HTTP 响应使用 gzip 来进行压缩以减少网络传输量,则在编译时就必须把 zlib 编译进 Nginx。zlib-devel 是二次开发所需要的库。
- Nginx 第三方 rewrite 模块需要 pcre 库
yum install -y pcre pcre-devel
PCRE(Perl Compatible Regular Expressions)支持正则表达式。如果我们在配置文件 nginx.conf 中使用了正则表达式,那么在编译 Nginx 时就必须把 PCRE 库编译进 Nginx,因为 Nginx 的 HTTP 模块需要靠它来解析正则表达式。另外,pcre-devel 是使用 PCRE 做二次开发时所需要的开发库,包括头文件等,这也是编译 Nginx 所必须使用的。
- Nginx 第三方 ssl 模块需要 openssl 库
yum install -y openssl openssl-devel
如果服务器不仅仅是要支持 HTTP,还需要在更安全的 SSL 协议上传输 HTTP,那么需要拥有 OpenSSL。另外,如果我们想使用 MD5、SHA1 等散列函数,那么也需要安装它。
获取安装包
Nginx 官网提供了三个类型的版本:
Mainline version:主线版本,目前主力在做的版本,也可以说是开发
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的历史版本的稳定版
如果 Linux 服务器有网络连接,可以直接使用 wget 下载
wget https://nginx.org/download/nginx-1.22.0.tar.gz
解压安装包
tar -zxvf nginx-1.22.0.tar.gz
进入刚刚解压好的目录
cd nginx-1.22.0
创建安装目录
mkdir -p /opt/nginx
编译并安装
指定安装路径,配置 HTTPS 模块
./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
编译(从 Makefile 中读取指令,然后编译)
make
安装(从 Makefile 中读取指令,安装到指定的位置)
make install
编辑配置文件
cd /opt/nginx/conf
vim nginx.conf
编辑好之后,按 esc 退出编辑模式,然后 :wq 进行保存退出
启动与停止
cd /opt/nginx/sbin
./nginx
查看是否启动成功:
ps -ef | grep nginx
,有 master 和 worker 进程说明已经启动
./nginx -s stop # 快速停止,相当于kill -9 port
./nginx -s quit # 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload # 重新加载配置文件
设置系统服务
创建配置文件
vim /etc/systemd/system/nginx.service
复制粘贴以下内容:
[Unit]
Description=nginx -web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s stop
ExecQuit=/opt/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
注意:ExecStart 等配置项要修改成自己安装的路径
加载配置文件
systemctl daemon-reload
服务操作命令
systemctl start nginx.service # 启动服务
systemctl stop nginx.service # 停止服务
systemctl restart nginx.service # 重启服务
systemctl reload nginx.service # 重新加载配置文件
systemctl status nginx.service # 查看服务当前状态
systemctl enable nginx.service # 设置开机自启
systemctl disable nginx.service # 停止开机自启
评论区