CentOS 7/8 Nginx 详细安装教程
Nginx (engine-x) 是一款高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。本教程将详细介绍如何在 CentOS 7 和 CentOS 8 系统上安装和配置 Nginx。
前提条件
- 一台运行 CentOS 7 或 CentOS 8 的服务器。
- 拥有
sudo权限的用户。 - 稳定的互联网连接。
步骤一:更新系统软件包
在安装任何新软件之前,始终建议更新您的系统软件包,以确保所有组件都是最新的。
对于 CentOS 7:
bash
sudo yum update -y
对于 CentOS 8:
bash
sudo dnf update -y
步骤二:安装 Nginx
Nginx 的安装过程在 CentOS 7 和 CentOS 8 上略有不同。CentOS 7 需要先启用 EPEL (Extra Packages for Enterprise Linux) 仓库,而 CentOS 8 则可以直接通过默认仓库安装。
CentOS 7 安装 Nginx
-
安装 EPEL 仓库:
Nginx 通常不包含在 CentOS 7 的默认仓库中。您需要安装 EPEL 仓库来获取 Nginx 包。bash
sudo yum install -y epel-release -
安装 Nginx:
安装 EPEL 仓库后,即可使用yum命令安装 Nginx。bash
sudo yum install -y nginx
CentOS 8 安装 Nginx
CentOS 8 默认仓库中包含 Nginx,可以直接使用 dnf 命令安装。
bash
sudo dnf install nginx -y
步骤三:启动并启用 Nginx 服务
安装完成后,Nginx 服务不会自动启动。您需要手动启动它,并配置为在系统启动时自动运行。
-
启动 Nginx 服务:
bash
sudo systemctl start nginx -
启用 Nginx 服务(开机自启):
bash
sudo systemctl enable nginx -
检查 Nginx 状态:
验证 Nginx 服务是否正在运行。bash
sudo systemctl status nginx如果服务正常运行,您应该会看到
active (running)的输出。
步骤四:配置防火墙
CentOS 7 和 CentOS 8 都使用 firewalld 作为默认防火墙。您需要配置防火墙以允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量通过,以便从外部访问您的 Nginx 服务器。
-
允许 HTTP 和 HTTPS 流量:
bash
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https -
重新加载防火墙规则:
bash
sudo firewall-cmd --reload -
验证防火墙规则(可选):
您可以列出所有活动的防火墙规则来确认更改。bash
sudo firewall-cmd --list-all输出中应包含
http和https服务。
步骤五:验证 Nginx 安装
完成以上步骤后,您可以通过访问服务器的 IP 地址或域名来验证 Nginx 是否已成功安装并运行。
-
获取服务器 IP 地址:
如果您不知道服务器的 IP 地址,可以使用以下命令获取:bash
ip addr -
在浏览器中访问:
打开您的网络浏览器,并在地址栏中输入服务器的 IP 地址。例如:http://your_server_ip。您应该会看到 Nginx 的默认欢迎页面,这表明 Nginx 已成功安装并正在提供服务。
步骤六:基本 Nginx 配置(可选,主要适用于 CentOS 8)
为了托管多个网站或进行更复杂的配置,您通常会设置“服务器块” (Server Blocks)。Nginx 的主要配置文件位于 /etc/nginx/ 目录。
-
创建网站配置目录:
bash
sudo mkdir -p /etc/nginx/{sites-available,sites-enabled} -
编辑主 Nginx 配置文件 (
/etc/nginx/nginx.conf):
将include /etc/nginx/sites-enabled/*.conf;行添加到http块中,以包含sites-enabled目录中的自定义配置。bash
sudo nano /etc/nginx/nginx.conf在
http { ... }块内添加:nginx
include /etc/nginx/sites-enabled/*.conf; -
创建新的网站配置文件 (例如
your_domain.conf):
在/etc/nginx/sites-available/目录中创建您的网站配置文件,并根据您的域名和网站根目录进行配置。bash
sudo nano /etc/nginx/sites-available/your_domain.conf示例配置:
“`nginx
server {
listen 80;
listen [::]:80;
server_name your_domain.com www.your_domain.com;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;location / { try_files $uri $uri/ =404; }}
“` -
创建网站根目录和测试文件:
bash
sudo mkdir -p /var/www/your_domain/html
echo "<h1>Hello from Nginx on CentOS!</h1>" | sudo tee /var/www/your_domain/html/index.html -
激活网站配置:
创建从sites-available到sites-enabled的符号链接。bash
sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/ -
测试 Nginx 配置:
检查 Nginx 配置是否存在语法错误。bash
sudo nginx -t如果显示
syntax is ok和test is successful,则表示配置无误。 -
重新加载 Nginx 服务:
应用新的配置。bash
sudo systemctl reload nginx
现在,如果您的 DNS 配置正确,访问 your_domain.com 将显示您自定义的网页。
总结
本教程详细介绍了在 CentOS 7 和 CentOS 8 系统上安装 Nginx 的完整过程,包括系统更新、Nginx 安装、服务管理、防火墙配置以及可选的基本网站配置。遵循这些步骤,您应该能够成功部署 Nginx 服务器。