Nginx常用版本四大阵营
- Nginx开源版
- Nginx plus 商业版
- Openresty
- Tengine
环境准备
服务器:CentOS7
Nginx版本:1.21.6
虚拟机搭建可参考:《win10下VMware15安装CentOS7虚拟机》
Nginx安装包官网下载地址:http://nginx.org/download/
1. 依赖下载
执行命令yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
进行全部安装。
GCC编译器
Nginx 是使用 C 语言编写的程序,因此想要运行 Nginx 就需要安装一个编译工具。GCC 就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了 C 语言。
使用命令yum install -y gcc
来安装。
可以通过gcc --version
来查看 gcc 是否安装成功。
PCRE
Nginx 在编译过程中需要使用到 PCRE 库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在 Nginx 的 Rewrite 模块和 http 核心模块都会使用到 PCRE 正则表达式语法。
使用命令yum install -y pcre pcre-devel
来进行安装。
可以通过rpm -qa pcre pcre-devel
来查看是否安装成功。
zlib
zlib 库提供了开发人员的压缩算法,在 Nginx 的各个模块中需要使用 gzip 压缩,所以我们也需要提前安装其库及源代码 zlib 和 zlib-devel。
可以使用命令yum install -y zlib zlib-devel
来进行安装。
可以通过rpm -qa zlib zlib-devel
来查看是否安装成功。
OpenSSL
OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
SSL:Secure Sockets Layer 安全套接协议的缩写,可以在 Internet 上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在 Nginx 中,如果服务器需要提供安全网页时就需要用到 OpenSSL 库,所以我们需要对 OpenSSL 的库文件及它的开发安装包进行一个安装。
可以使用命令yum install -y openssl openssl-devel
来进行安装。
可以通过rpm -qa openssl openssl-devel
来查看是否安装成功。
2. 安装部署
- 安装包上传到服务器中;
- 执行命令
tar -xzf nginx-1.21.6.tar.gz
解压安装包; - 进入解压后的目录,执行命令
./configure --prefix=/usr/local/nginx
; - 执行命令
make
进行编译; - 执行命令
make install
进行安装。
3. 常用命令
进入安装好的目录/usr/local/nginx/sbin
:
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置
关于防火墙的命令:
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 禁止防火墙开机启动
firewall-cmd --zone=public --add-port=80/tcp --permanent 放行端口
firewall-cmd --reload 重启防火墙
4. 将Nginx安装成系统服务
创建服务脚本:
vi /usr/lib/systemd/system/nginx.service
服务脚本内容:
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载系统服务:
systemctl daemon-reload
启动服务:
systemctl start nginx.service
开机启动:
systemctl enable nginx.service