Nginx 在 Linux 系统上有多种安装方式,本章节将介绍最常用的安装方法。
# 更新软件包索引
sudo apt update
# 安装 Nginx
sudo apt install nginx
# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 查看运行状态
sudo systemctl status nginx
# 安装必要的依赖
sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
# 导入官方签名密钥
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# 设置官方软件源(stable 版本)
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
# 安装 Nginx
sudo apt update
sudo apt install nginx
# 安装 EPEL 源
sudo yum install epel-release
# 安装 Nginx
sudo yum install nginx
# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 查看运行状态
sudo systemctl status nginx
# 安装必要的工具
sudo yum install yum-utils
# 创建官方软件源配置文件
sudo vim /etc/yum.repos.d/nginx.repo
在文件中添加以下内容:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 安装 Nginx(默认使用 stable 版本)
sudo yum install nginx
# 如需安装 mainline 版本
sudo yum-config-manager --enable nginx-mainline
sudo yum install nginx
# 安装 Nginx
sudo dnf install nginx
# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 查看运行状态
sudo systemctl status nginx
# 配置防火墙
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 更新软件包索引
sudo apk update
# 安装 Nginx
sudo apk add nginx
# 启动 Nginx
sudo rc-service nginx start
# 设置开机自启
sudo rc-update add nginx
# 查看运行状态
sudo rc-service nginx status
# 检查 Nginx 版本
nginx -v
# 检查配置文件语法
nginx -t
# 测试 Nginx 服务
curl http://localhost
在浏览器中访问 http://localhost 或 http://服务器IP,看到 "Welcome to nginx!" 页面即表示安装成功。
| 目录 | 说明 |
|---|---|
/etc/nginx/ | 配置文件目录 |
/etc/nginx/nginx.conf | 主配置文件 |
/etc/nginx/conf.d/ | 额外配置文件目录 |
/var/log/nginx/ | 日志文件目录 |
/var/www/html/ | 默认网站根目录(Ubuntu/Debian) |
/usr/share/nginx/html/ | 默认网站根目录(CentOS/RHEL) |
# 启动 Nginx
sudo systemctl start nginx
# 停止 Nginx
sudo systemctl stop nginx
# 重启 Nginx
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
# 查看状态
sudo systemctl status nginx
# 禁用开机自启
sudo systemctl disable nginx
# 启用开机自启
sudo systemctl enable nginx
# firewalld(CentOS/RHEL 7+)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# ufw(Ubuntu/Debian)
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
# iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Ubuntu/Debian
sudo apt remove nginx nginx-common nginx-full
sudo apt purge nginx nginx-common nginx-full
sudo apt autoremove
# CentOS/RHEL
sudo yum remove nginx
sudo yum autoremove
# Alpine
sudo apk del nginx
# 查看错误日志
sudo tail -f /var/log/nginx/error.log
# 查看访问日志
sudo tail -f /var/log/nginx/access.log
# 检查配置文件
sudo nginx -t
# 查看进程
ps aux | grep nginx
# 查看端口占用
sudo netstat -tlnp | grep :80
# 或
sudo ss -tlnp | grep :80
如果启用了 SELinux,可能需要调整策略:
# 查看 SELinux 状态
sestatus
# 临时关闭 SELinux(测试用)
sudo setenforce 0
# 永久关闭 SELinux
sudo vim /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled
# 允许 Nginx 网络连接
sudo setsebool -P httpd_can_network_connect 1
# 允许 Nginx 发送邮件
sudo setsebool -P httpd_can_sendmail 1