如何在 CentOS 安装 Nginx Web 服务器 – wiki词典

“`markdown

如何在 CentOS 上安装 Nginx Web 服务器

Nginx (发音为 “engine-x”) 是一个高性能的 HTTP 和反向代理服务器,也可以用作邮件代理服务器和通用 TCP/UDP 代理服务器。它以其卓越的性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而闻名。本指南将详细介绍如何在 CentOS 系统上安装和配置 Nginx。

准备工作 (Prerequisites)

在开始安装之前,请确保您的 CentOS 系统满足以下条件:

  1. CentOS 系统: 本指南适用于 CentOS 7 或 CentOS 8。
  2. root 权限或 sudo 权限: 您需要有权限执行管理员命令。
  3. 网络连接: 确保您的服务器可以访问互联网以下载 Nginx 软件包。
  4. 防火墙配置: 确保防火墙允许 HTTP (80) 和 HTTPS (443) 流量。

更新系统

在安装任何新软件包之前,始终建议更新您的系统,以确保所有现有软件包都是最新的。

bash
sudo yum update -y

配置防火墙

CentOS 使用 firewalld 作为默认防火墙管理工具。您需要开放 HTTP 和 HTTPS 端口。

“`bash

开放 HTTP 端口 (80)

sudo firewall-cmd –permanent –add-service=http

开放 HTTPS 端口 (443)

sudo firewall-cmd –permanent –add-service=https

重新加载防火墙以应用更改

sudo firewall-cmd –reload
“`

如果您不确定防火墙是否正在运行或想检查状态:

bash
sudo systemctl status firewalld

安装 Nginx

CentOS 默认的 YUM 仓库中可能没有最新版本的 Nginx。为了安装稳定版或主线版 Nginx,我们通常需要添加 Nginx 官方仓库。

步骤 1: 添加 Nginx 官方仓库

创建一个名为 nginx.repo 的文件在 /etc/yum.repos.d/ 目录下。

bash
sudo vi /etc/yum.repos.d/nginx.repo

然后将以下内容粘贴到文件中。

对于 CentOS 7:

“`ini
[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
“`

对于 CentOS 8:

“`ini
[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
“`

注意: 默认情况下,我们启用 nginx-stable 仓库。如果您希望安装最新的主线版本,可以将 enabled=0 改为 enabled=1[nginx-mainline] 部分,并禁用 nginx-stable

保存并关闭文件。在 vi 编辑器中,按 Esc 键,然后输入 :wq 并回车。

步骤 2: 安装 Nginx

现在您可以通过 yum 命令安装 Nginx 了。

bash
sudo yum install nginx -y

步骤 3: 启动 Nginx 服务并设置开机自启

安装完成后,启动 Nginx 服务并将其设置为开机自启。

“`bash

启动 Nginx 服务

sudo systemctl start nginx

设置 Nginx 开机自启

sudo systemctl enable nginx

检查 Nginx 状态

sudo systemctl status nginx
“`

如果一切顺利,您应该会看到 Nginx 处于 active (running) 状态。

验证 Nginx 安装

打开您的 Web 浏览器,在地址栏中输入服务器的 IP 地址或域名。

http://您的服务器IP地址或域名/

如果您看到 Nginx 的欢迎页面 (通常显示 “Welcome to nginx!”),这意味着 Nginx 已经成功安装并正在运行。

Nginx 的基本配置

Nginx 的主配置文件位于 /etc/nginx/nginx.conf。此外,通常会将网站的配置存放在 /etc/nginx/conf.d/ 目录下的 .conf 文件中,这样更易于管理。

主配置文件 (/etc/nginx/nginx.conf)

这是 Nginx 的全局配置文件。您可以查看它以了解 Nginx 的整体结构和默认设置。通常,您不需要对其进行太多修改,除非您有特定的全局需求。

bash
sudo vi /etc/nginx/nginx.conf

注意其中的 include /etc/nginx/conf.d/*.conf; 行,它表示 Nginx 会加载 conf.d 目录下所有以 .conf 结尾的配置文件。

创建一个新的网站配置文件

让我们创建一个简单的网站配置文件作为示例。

bash
sudo vi /etc/nginx/conf.d/your_domain.conf

将以下内容添加到文件中 (请将 your_domain.com 替换为您的实际域名或服务器 IP)。

“`nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com; # 替换为您的域名或IP

root /usr/share/nginx/html; # 网站文件存放目录
index index.html index.htm;

location / {
    try_files $uri $uri/ =404;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}

}
“`

保存并关闭文件。

创建网站内容

现在,在 root 指向的目录 /usr/share/nginx/html 中创建一个简单的 index.html 文件。

bash
sudo vi /usr/share/nginx/html/index.html

添加一些 HTML 内容:

“`html




欢迎访问我的网站


恭喜您!Nginx 在 CentOS 上运行成功!

这是一个由 Nginx 提供服务的示例页面。


“`

保存并关闭文件。

检查 Nginx 配置语法并重新加载

在重新加载 Nginx 服务之前,务必检查配置文件的语法,以避免服务中断。

bash
sudo nginx -t

如果输出显示 syntax is oktest is successful,则表示配置无误。现在可以重新加载 Nginx 服务以应用新的配置。

bash
sudo systemctl reload nginx

再次访问您的服务器 IP 或域名,您应该会看到您创建的 index.html 内容。

管理 Nginx 服务

以下是一些常用的 Nginx 服务管理命令:

  • 启动 Nginx: sudo systemctl start nginx
  • 停止 Nginx: sudo systemctl stop nginx
  • 重启 Nginx: sudo systemctl restart nginx (停止然后启动)
  • 重新加载配置: sudo systemctl reload nginx (在不中断服务的情况下应用配置更改)
  • 查看 Nginx 状态: sudo systemctl status nginx
  • 禁用 Nginx 开机自启: sudo systemctl disable nginx

常见问题与故障排除

  • 无法访问 Nginx 页面:
    • 检查防火墙是否开放了 80 (HTTP) 和 443 (HTTPS) 端口。
    • 检查 Nginx 服务是否正在运行 (sudo systemctl status nginx)。
    • 检查服务器 IP 地址或域名是否正确。
    • 检查 SELinux 策略。如果您的系统启用了严格的 SELinux,可能需要调整策略以允许 Nginx 访问文件。您可以尝试临时禁用 SELinux (sudo setenforce 0) 进行测试,如果可以访问,则需要配置合适的 SELinux 规则。
  • Nginx 启动失败:
    • 运行 sudo nginx -t 检查配置文件语法是否有错误。
    • 查看 Nginx 错误日志文件,通常位于 /var/log/nginx/error.log
  • 50x 错误:
    • 这通常表示 Nginx 作为反向代理时,后端服务出现问题。检查后端服务的日志。

总结

通过本指南,您已经成功在 CentOS 系统上安装、配置并启动了 Nginx Web 服务器。Nginx 是一个强大且灵活的工具,可以满足各种 Web 服务需求。随着您对 Nginx 的进一步使用,您可以探索其更高级的功能,如负载均衡、HTTPS 配置 (SSL/TLS)、HTTP/2 等。
“`

滚动至顶部