CentOS 7/8 安装 Nginx 详细教程 – wiki基地

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

  1. 安装 EPEL 仓库:
    Nginx 通常不包含在 CentOS 7 的默认仓库中。您需要安装 EPEL 仓库来获取 Nginx 包。

    bash
    sudo yum install -y epel-release

  2. 安装 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 服务不会自动启动。您需要手动启动它,并配置为在系统启动时自动运行。

  1. 启动 Nginx 服务:

    bash
    sudo systemctl start nginx

  2. 启用 Nginx 服务(开机自启):

    bash
    sudo systemctl enable nginx

  3. 检查 Nginx 状态:
    验证 Nginx 服务是否正在运行。

    bash
    sudo systemctl status nginx

    如果服务正常运行,您应该会看到 active (running) 的输出。

步骤四:配置防火墙

CentOS 7 和 CentOS 8 都使用 firewalld 作为默认防火墙。您需要配置防火墙以允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量通过,以便从外部访问您的 Nginx 服务器。

  1. 允许 HTTP 和 HTTPS 流量:

    bash
    sudo firewall-cmd --zone=public --permanent --add-service=http
    sudo firewall-cmd --zone=public --permanent --add-service=https

  2. 重新加载防火墙规则:

    bash
    sudo firewall-cmd --reload

  3. 验证防火墙规则(可选):
    您可以列出所有活动的防火墙规则来确认更改。

    bash
    sudo firewall-cmd --list-all

    输出中应包含 httphttps 服务。

步骤五:验证 Nginx 安装

完成以上步骤后,您可以通过访问服务器的 IP 地址或域名来验证 Nginx 是否已成功安装并运行。

  1. 获取服务器 IP 地址:
    如果您不知道服务器的 IP 地址,可以使用以下命令获取:

    bash
    ip addr

  2. 在浏览器中访问:
    打开您的网络浏览器,并在地址栏中输入服务器的 IP 地址。例如:http://your_server_ip

    您应该会看到 Nginx 的默认欢迎页面,这表明 Nginx 已成功安装并正在提供服务。

步骤六:基本 Nginx 配置(可选,主要适用于 CentOS 8)

为了托管多个网站或进行更复杂的配置,您通常会设置“服务器块” (Server Blocks)。Nginx 的主要配置文件位于 /etc/nginx/ 目录。

  1. 创建网站配置目录:

    bash
    sudo mkdir -p /etc/nginx/{sites-available,sites-enabled}

  2. 编辑主 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;

  3. 创建新的网站配置文件 (例如 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;
    }
    

    }
    “`

  4. 创建网站根目录和测试文件:

    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

  5. 激活网站配置:
    创建从 sites-availablesites-enabled 的符号链接。

    bash
    sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

  6. 测试 Nginx 配置:
    检查 Nginx 配置是否存在语法错误。

    bash
    sudo nginx -t

    如果显示 syntax is oktest is successful,则表示配置无误。

  7. 重新加载 Nginx 服务:
    应用新的配置。

    bash
    sudo systemctl reload nginx

现在,如果您的 DNS 配置正确,访问 your_domain.com 将显示您自定义的网页。

总结

本教程详细介绍了在 CentOS 7 和 CentOS 8 系统上安装 Nginx 的完整过程,包括系统更新、Nginx 安装、服务管理、防火墙配置以及可选的基本网站配置。遵循这些步骤,您应该能够成功部署 Nginx 服务器。

滚动至顶部