1.版本区别
常用版本分为四大阵营:
Nginx开源版
:http://nginx.org/Nginx plus 商业版
:https://www.nginx.comopenresty
:http://openresty.org/cn/Tengine
:http://tengine.taobao.org/
2.安装nginx
2.1 下载安装包
🏠 访问:Tags · nginx/nginx (github.com)
2.2 上传至 linux
2.3 解压缩
sudo tar zxvf nginx-release-1.21.6.tar.gz # 可以查看到一个 nginx-release-1.21.6 目录 sudo ls -l # 进入该目录 cd nginx-release-1.21.6/
2.4 环境配置
🍀 ubuntu下的配置
sudo apt update # 安装一系列软件包,包括gcc,g++,和make。 sudo apt install build-essential sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install zlib1g-dev
🍀 Centos下的配置
yum install -y gcc yum install -y pcre pcre-devel yum install -y zlib zlib-devel
2.5 编译安装
# 用 configure 脚本安装,并放到 /usr/local 下 sudo ./auto/configure --prefix=/usr/local/nginx sudo make sudo make install
2.4 校验安装成功
# 在 /usr/local 目录下有 nginx 文件夹 sudo ls -l /usr/local/ # 在 nginx 文件夹下有 conf,html,logs,sbin sudo ls -l /usr/local/nginx/
3.启用nginx
3.1 防火墙打开80端口
🍀 ubuntu下的打开
sudo apt update sudo apt install ufw # 打开防火墙,输 y(关闭防火墙:sudo ufw disable) sudo ufw enable # 允许80端口访问(tcp/udp) sudo ufw allow 80 # 重启生效 sudo ufw reload
🍀 Centos下的打开
# 允许80端口访问 firewall-cmd --zone=public --add-port=80/tcp --permanent、 # 重启防火墙生效 systemctl restart firewall.service
3.2 启动
# 进入安装好的目录 /usr/local/nginx/sbin cd /usr/local/nginx/sbin # 修改配置文件 sudo vim /usr/local/nginx/conf/nginx.conf
将 pid 的注释取消:
# 【需要执行一下】指定配置目录,该命令会同时启动nginx,因此如果再 sudo ./nginx 会报端口已被占用 sudo ./nginx -c /usr/local/nginx/conf/nginx.conf
# 启动 sudo ./nginx # 快速停止 sudo ./nginx -s stop # 优雅关闭,在退出前完成已经接受的连接请求 sudo ./nginx -s quit # 重新加载配置 sudo ./nginx -s reload
3.3 访问测试
🏠 访问:http://【Linux 的 IP】:80/
4.安装成系统服务
必须先将nginx服务停止,原命令与系统服务脚本会有冲突:
/usr/local/nginx/sbin/nginx -s stop
4.1 创建服务脚本
sudo vim /usr/lib/systemd/system/nginx.service
服务脚本内容:
# 主要用于设置该服务单元的描述和启动顺序 [Unit] # 描述了该服务单元的作用 Description=nginx - web server # 表示该服务单元依赖于哪些其他服务单元 After=network.target remote-fs.target nss-lookup.target # 主要用于设置该服务单元的启动参数和命令 [Service] # 指定该服务单元的类型 Type=forking # 指定该服务单元的进程 ID 文件所在位置 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] # 指定该服务单元所属的启动级别,这里指定为 multi-user.target,表示在多用户模式下启动该服务单元 WantedBy=multi-user.target
4.2 重新加载系统服务
sudo systemctl daemon-reload
4.3 服务指令
# 停止服务 sudo systemctl stop nginx.service # 启动服务 sudo systemctl start nginx.service # 开机启动 sudo systemctl enable nginx.service # 关闭开机自启动 sudo systemctl disable nginx.service # 重启服务 sudo systemctl restart nginx.service # 查看nginx状态 sudo systemctl status nginx.service