手把手教你 CentOS 安装 Nginx
Nginx(发音为 “engine X”)是一款高性能的开源HTTP和反向代理服务器,也可以用作邮件代理服务器和通用 TCP/UDP 代理服务器。它以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。本教程将详细介绍如何在 CentOS 系统上安装和配置 Nginx。
目录
- 引言
- 准备工作
- 安装 Nginx
- 通过 EPEL 仓库安装
- 通过 Nginx 官方仓库安装 (推荐)
- 配置 Nginx
- 管理 Nginx 服务
- 防火墙设置
- 测试 Nginx
- 结论
1. 引言
Nginx 是一款非常流行的 Web 服务器软件,在全球范围内被广泛用于托管网站、提供 API 服务以及作为负载均衡器。与 Apache 等传统 Web 服务器相比,Nginx 在高并发连接处理方面表现优异,这使得它成为现代 Web 应用架构的理想选择。本教程将引导您在 CentOS 系统上完成 Nginx 的安装与基础配置。
2. 准备工作
在开始安装 Nginx 之前,请确保您的 CentOS 系统满足以下条件:
- 操作系统: CentOS 7 或 CentOS 8
- 用户权限: 拥有
sudo权限的用户或root用户。 - 网络连接: 您的 CentOS 服务器需要能够访问互联网以下载安装包。
- 更新系统: 强烈建议在安装任何新软件之前更新系统,以确保所有软件包都是最新版本,并避免潜在的兼容性问题。
bash
sudo yum update -y
3. 安装 Nginx
在 CentOS 上安装 Nginx 有两种主要方式:通过 EPEL (Extra Packages for Enterprise Linux) 仓库安装或通过 Nginx 官方仓库安装。推荐使用 Nginx 官方仓库,因为它通常提供最新版本的 Nginx。
方式一:通过 EPEL 仓库安装 (版本可能较旧)
EPEL 仓库提供了许多企业级 Linux 发行版中没有的额外软件包。
-
安装 EPEL 仓库:
bash
sudo yum install epel-release -y -
安装 Nginx:
bash
sudo yum install nginx -y
方式二:通过 Nginx 官方仓库安装 (推荐)
这种方法可以确保您安装的是最新稳定版本的 Nginx。
-
创建 Nginx 仓库配置文件:
在/etc/yum.repos.d/目录下创建一个名为nginx.repo的文件。对于 CentOS 7:
bash
sudo vi /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[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
``$releasever会自动替换为您的 CentOS 版本 (例如 7 或 8)。enabled=1表示默认启用stable仓库,如果您想安装mainline(最新开发版) 版本,可以将mainline部分的enabled=0改为enabled=1,并将stable部分的enabled=1改为enabled=0。通常建议使用stable` 版本。对于 CentOS 8:
$releasever在 CentOS 8 中不起作用,您需要手动指定版本。
bash
sudo vi /etc/yum.repos.d/nginx.repo
将以下内容粘贴到文件中:
“`
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/8/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
``baseurl
请注意中的/centos/8/`。 -
安装 Nginx:
bash
sudo yum install nginx -y
4. 配置 Nginx
Nginx 的主配置文件位于 /etc/nginx/nginx.conf。此外,通常会在 /etc/nginx/conf.d/ 目录下创建独立的配置文件,以便更好地组织和管理虚拟主机或应用程序配置。
一个典型的 Nginx 配置文件结构如下:
/etc/nginx/
├───nginx.conf # 主配置文件
├───conf.d/ # 存放自定义服务器块配置的目录
│ └───default.conf
└───sites-available/ # 存放所有可用的虚拟主机配置
└───your_domain.conf
└───sites-enabled/ # 存放已启用的虚拟主机配置的软链接
默认配置:
安装完成后,Nginx 会有一个默认的 default.conf (通常在 /etc/nginx/conf.d/) 或直接在 nginx.conf 中有一个 server 块,它会监听 80 端口。
修改默认网站根目录 (可选):
默认情况下,Nginx 的网站根目录通常是 /usr/share/nginx/html 或 /var/www/html。您可以修改 nginx.conf 或 conf.d 中的服务器块来指定您的网站文件存放位置。
例如,创建一个简单的 HTML 文件:
bash
sudo mkdir -p /var/www/mywebsite
echo "<h1>Hello from Nginx on CentOS!</h1>" | sudo tee /var/www/mywebsite/index.html
然后修改 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf (具体文件名可能因安装方式而异) 中的 server 块,将 root 指令指向 /var/www/mywebsite。
“`nginx
找到类似以下的 server 块
server {
listen 80;
server_name localhost; # 或您的域名
# 将此行修改为您的网站根目录
root /var/www/mywebsite;
index index.html index.htm;
# 其他配置...
}
“`
检查 Nginx 配置语法:
在重新加载或重启 Nginx 服务之前,务必检查配置文件的语法是否正确。
bash
sudo nginx -t
如果看到 syntax is ok 和 test is successful,则表示配置无误。
5. 管理 Nginx 服务
安装完成后,您可以使用 systemctl 命令来管理 Nginx 服务。
-
启动 Nginx 服务:
bash
sudo systemctl start nginx -
设置 Nginx 开机自启:
bash
sudo systemctl enable nginx -
检查 Nginx 服务状态:
bash
sudo systemctl status nginx
您应该会看到类似active (running)的输出。 -
重新加载 Nginx 配置 (不中断服务):
在修改 Nginx 配置文件后,如果想让更改生效,可以使用reload。
bash
sudo systemctl reload nginx -
重启 Nginx 服务 (中断服务):
如果reload无法解决问题,或者您进行了重大配置更改,可以使用restart。
bash
sudo systemctl restart nginx -
停止 Nginx 服务:
bash
sudo systemctl stop nginx
6. 防火墙设置
CentOS 默认开启 firewalld。为了让外部用户能够访问您的 Nginx 服务器,您需要开放 HTTP (80 端口) 和 HTTPS (443 端口)。
-
开放 HTTP 端口 (80):
bash
sudo firewall-cmd --permanent --add-service=http -
开放 HTTPS 端口 (443) (如果计划使用 HTTPS):
bash
sudo firewall-cmd --permanent --add-service=https -
重新加载防火墙规则:
bash
sudo firewall-cmd --reload -
检查防火墙状态 (可选):
bash
sudo firewall-cmd --list-all
在输出中,您应该能看到http和https服务被列在services部分。
7. 测试 Nginx
现在,Nginx 已经安装并运行,防火墙也已配置。您可以通过浏览器访问您的服务器 IP 地址或域名来测试它。
-
获取服务器 IP 地址:
bash
ip a s
查找您的网络接口 (例如eth0或enpXsX) 下的inet地址。 -
在浏览器中访问:
在您的本地计算机上打开浏览器,输入您的服务器 IP 地址 (例如http://your_server_ip)。您应该能看到 Nginx 的欢迎页面 (如果使用默认配置) 或您在
/var/www/mywebsite/index.html中创建的内容。
8. 结论
恭喜!您已经成功在 CentOS 系统上安装并配置了 Nginx Web 服务器。现在您可以开始部署您的网站、配置反向代理、负载均衡或其他高级功能。Nginx 的强大之处在于其灵活性和高性能,通过学习更多的配置指令,您可以充分发挥它的潜力。