在 Linux 上安装

Nginx 在 Linux 系统上有多种安装方式,本章节将介绍最常用的安装方法。

安装方式概览

  • 发行版包管理器:最简单快捷,适合大多数用户
  • 官方软件源:获取最新稳定版本
  • 源码编译:高度自定义,适合高级用户

Ubuntu/Debian 系统

使用包管理器安装

# 更新软件包索引
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

CentOS/RHEL 7 系统

使用 EPEL 源安装

# 安装 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

CentOS/RHEL 8+ 系统

使用包管理器安装

# 安装 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

Alpine Linux

# 更新软件包索引
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://localhosthttp://服务器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

卸载 Nginx

# 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 配置(CentOS/RHEL)

如果启用了 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