手把手教你 CentOS 安装 Nginx – wiki大全

手把手教你 CentOS 安装 Nginx

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

目录

  1. 引言
  2. 准备工作
  3. 安装 Nginx
    • 通过 EPEL 仓库安装
    • 通过 Nginx 官方仓库安装 (推荐)
  4. 配置 Nginx
  5. 管理 Nginx 服务
  6. 防火墙设置
  7. 测试 Nginx
  8. 结论

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 发行版中没有的额外软件包。

  1. 安装 EPEL 仓库:
    bash
    sudo yum install epel-release -y

  2. 安装 Nginx:
    bash
    sudo yum install nginx -y

方式二:通过 Nginx 官方仓库安装 (推荐)

这种方法可以确保您安装的是最新稳定版本的 Nginx。

  1. 创建 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/`。

  2. 安装 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.confconf.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 oktest is successful,则表示配置无误。


5. 管理 Nginx 服务

安装完成后,您可以使用 systemctl 命令来管理 Nginx 服务。

  1. 启动 Nginx 服务:
    bash
    sudo systemctl start nginx

  2. 设置 Nginx 开机自启:
    bash
    sudo systemctl enable nginx

  3. 检查 Nginx 服务状态:
    bash
    sudo systemctl status nginx

    您应该会看到类似 active (running) 的输出。

  4. 重新加载 Nginx 配置 (不中断服务):
    在修改 Nginx 配置文件后,如果想让更改生效,可以使用 reload
    bash
    sudo systemctl reload nginx

  5. 重启 Nginx 服务 (中断服务):
    如果 reload 无法解决问题,或者您进行了重大配置更改,可以使用 restart
    bash
    sudo systemctl restart nginx

  6. 停止 Nginx 服务:
    bash
    sudo systemctl stop nginx


6. 防火墙设置

CentOS 默认开启 firewalld。为了让外部用户能够访问您的 Nginx 服务器,您需要开放 HTTP (80 端口) 和 HTTPS (443 端口)。

  1. 开放 HTTP 端口 (80):
    bash
    sudo firewall-cmd --permanent --add-service=http

  2. 开放 HTTPS 端口 (443) (如果计划使用 HTTPS):
    bash
    sudo firewall-cmd --permanent --add-service=https

  3. 重新加载防火墙规则:
    bash
    sudo firewall-cmd --reload

  4. 检查防火墙状态 (可选):
    bash
    sudo firewall-cmd --list-all

    在输出中,您应该能看到 httphttps 服务被列在 services 部分。


7. 测试 Nginx

现在,Nginx 已经安装并运行,防火墙也已配置。您可以通过浏览器访问您的服务器 IP 地址或域名来测试它。

  1. 获取服务器 IP 地址:
    bash
    ip a s

    查找您的网络接口 (例如 eth0enpXsX) 下的 inet 地址。

  2. 在浏览器中访问:
    在您的本地计算机上打开浏览器,输入您的服务器 IP 地址 (例如 http://your_server_ip)。

    您应该能看到 Nginx 的欢迎页面 (如果使用默认配置) 或您在 /var/www/mywebsite/index.html 中创建的内容。


8. 结论

恭喜!您已经成功在 CentOS 系统上安装并配置了 Nginx Web 服务器。现在您可以开始部署您的网站、配置反向代理、负载均衡或其他高级功能。Nginx 的强大之处在于其灵活性和高性能,通过学习更多的配置指令,您可以充分发挥它的潜力。

滚动至顶部