如何在 CentOS 8 上安装 Nginx

介绍

Nginx是世界上最受欢迎的网页服务器之一,负责托管互联网上一些最大的和最受欢迎的网站,在大多数情况下比Apache更为资源友好,可以用作网页服务器或反向代理。

在本指南中,我们将讨论如何在 CentOS 8 服务器上安装 Nginx。

前提条件

要遵循此指南,您需要访问 CentOS 8 服务器作为具有 sudo 权限的非根用户,并在您的服务器上安装一个活跃的防火墙。

步骤1:安装 Nginx Web 服务器

为了安装 Nginx,我们将使用dnf包管理器,这是CentOS 8上新的默认包管理器。

安装nginx包:

1sudo dnf install nginx

当被提示时,输入y来确认您想要安装nginx

安装完成后,运行以下命令来启用和启动服务器:

1sudo systemctl enable nginx
2sudo systemctl start nginx

这将使 Nginx 在系统启动时启动。

第2步:调整防火墙规则

如果您已按我们(CentOS 8 初始服务器设置指南)的指示启用了防火墙,则需要调整防火墙设置,以便在您的 Nginx Web 服务器上允许外部连接,该服务器默认运行在端口 80。

运行以下命令,在端口 `80 上永久启用 HTTP 连接:

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

要验证http防火墙服务是否正确添加,您可以运行:

1sudo firewall-cmd --permanent --list-all

你会看到这样的输出:

 1[secondary_label Output]
 2public
 3  target: default
 4  icmp-block-inversion: no
 5  interfaces: 
 6  sources: 
 7  services: cockpit dhcpv6-client http ssh
 8  ports: 
 9  protocols: 
10  masquerade: no
11  forward-ports: 
12  source-ports: 
13  icmp-blocks: 
14  rich rules:

要应用这些更改,您需要重新加载防火墙服务:

1sudo firewall-cmd --reload

现在您的 Nginx 服务器已完全安装,并准备好让外部访问者访问。

步骤3 - 检查您的Web服务器

现在您可以通过从您的 Web 浏览器访问您的服务器的公共 IP 地址或域名来测试您的 Nginx 网络服务器是否正在运行。

<$>[注] :如果您正在使用DigitalOcean作为您的DNS托管提供商,您可以检查我们的 产品文件 有关如何设置新域名并将其指向您的服务器的详细说明。

如果你没有指向你的服务器的域名,而你不知道你的服务器的公共IP地址,你可以通过运行以下命令来找到它:

1ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

這將打印出幾個IP地址,您可以在您的網頁瀏覽器中嘗試每一個。

或者,您可以检查哪个 IP 地址可访问,如从互联网上的其他位置查看:

1curl -4 icanhazip.com

输入您在 Web 浏览器中接收的地址,它将带您到 Nginx 的默认定位页面:

Default Nginx Page CentOS 8

如果您看到此页面,那么您的 Web 服务器现在已正确安装。

第4步:管理 Nginx 流程

现在你有你的网页服务器运行,我们将审查如何通过systemctl来管理 Nginx 服务。

任何时候你需要停止你的Web服务器,你可以使用:

1sudo systemctl stop nginx

要在停止时启动 Web 服务器,键入:

1sudo systemctl start nginx

要停止,然后重新启动服务,您可以使用:

1sudo systemctl restart nginx

Nginx 还可以重新加载配置更改,而不会放弃连接。

1sudo systemctl reload nginx

默认情况下, Nginx 配置为在服务器启动时自动启动. 如果这不是你想要的,你可以通过键入来禁用此行为:

1sudo systemctl disable nginx

要重新启用该服务并让 Nginx 重新启动,您可以使用:

1sudo systemctl enable nginx

步骤 5 – 熟悉重要的 Nginx 文件和目录

现在你知道如何管理 Nginx 服务,你应该花几分钟来熟悉一些重要的目录和文件。

内容

  • /usr/share/nginx/html:实际的网页内容,默认情况下仅由您之前看到的默认 Nginx 页面组成,从 /usr/share/nginx/html 目录中提供。

服务器配置

  • /etc/nginx: Nginx 配置目录. 所有 Nginx 配置文件都位于此处.
  • /etc/nginx/nginx.conf: 主要的 Nginx 配置文件. 这可以修改以改变 Nginx 全球配置.
  • /etc/nginx/conf.d/: 此目录包含服务器块配置文件,您可以定义在 Nginx 中托管的网站。

服务器日志

  • /var/log/nginx/access.log:在这个日志文件中记录到您的 Web 服务器的每一个请求,除非 Nginx 已配置为另行。

步骤 6 – 设置服务器封锁(可选)

如果您想在同一个 Nginx 网页服务器中托管多个网站,则需要设置 服务器块。 Nginx 服务器块以类似的方式与 Apache 虚拟主机工作,允许单个服务器响应多个域名并为每个域名提供不同的内容。

我们将为域名设置一个服务器块,名为 your_domain . 有关使用 DigitalOcean 设置域名的更多信息,请参阅我们的 DigitalOcean DNS 介绍

默认情况下,CentOS 8上的Nginx配置为在/usr/share/nginx/html的目录中服务文档。虽然这对单个网站非常有效,但如果您托管多个网站,它可能会变得无法管理。而不是修改/usr/share/nginx/html,我们将为 your_domain 网站创建一个/var/www内的目录结构,将/usr/share/nginx/html留在默认目录中,如果客户端请求不匹配其他任何网站。

创建 your_domain 的目录如下,使用-p旗帜创建任何必要的母目录:

1sudo mkdir -p /var/www/your_domain/html

接下来,与$USER环境变量分配目录的所有权,该变量应参考您的当前系统用户:

1sudo chown -R $USER:$USER /var/www/your_domain/html

接下来,我们将创建一个样本index.html页面来测试服务器块配置。与CentOS 8一起提供的默认文本编辑器是vivi是一个极其强大的文本编辑器,但对于缺乏经验的用户来说,它可能有点模糊。

1sudo dnf install nano

现在你可以使用nano来创建样本index.html文件:

1nano /var/www/your_domain/html/index.html

在该文件中,添加以下HTML代码:

 1[label /var/www/your_domain/html/index.html]
 2<html>
 3    <head>
 4        <title>Welcome to your_domain</title>
 5    </head>
 6    <body>
 7        <h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
 8<p>This is a sample page.</p>
 9    </body>
10</html>

如果您使用了「nano」,您可以按一下「CTRL + X」,「Y」,然後按一下「ENTER」。

为了使 Nginx 能够提供此内容,我们需要创建一个具有正确指示的服务器块,指向我们的自定义 Web 根。

1sudo nano /etc/nginx/conf.d/your_domain.conf

插入以下配置块:

 1[label /etc/nginx/conf.d/your_domain.conf]
 2server {
 3        listen 80;
 4        listen [::]:80;
 5
 6        root /var/www/your_domain/html;
 7        index index.html index.htm index.nginx-debian.html;
 8
 9        server_name your_domain www.your_domain;
10
11        location / {
12                try_files $uri $uri/ =404;
13        }
14}

保存并关闭文件,当你完成了编辑其内容。

要确保您的任何 Nginx 文件中没有语法错误,请运行:

1sudo nginx -t

如果没有任何问题,你会看到以下输出:

1[secondary_label Output]
2nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
3nginx: configuration file /etc/nginx/nginx.conf test is successful

通过配置测试后,重新启动 Nginx 以启用您的更改:

1sudo systemctl restart nginx

在您可以在浏览器中测试这些更改之前,您需要更新服务器的 SELinux安全环境,以便 Nginx 可以从 /var/www/your_domain 目录中提供内容。

以下命令将允许您的自定义文档根作为 HTTP 内容提供服务:

1chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

现在你可以通过导航到http://your_domain来测试你的自定义域设置,你会看到这样的东西:

Nginx server block

此页面正在渲染我们在为服务器块创建的自定义文档根中定义的HTML代码. 如果您能够看到此页面,则意味着您的Nginx服务器已正确配置以服务您的域。

结论

在本指南中,我们已经看到如何安装和设置 Nginx,一个高性能的网页服务器和反向代理程序. 我们审查了如何管理在您的服务器上运行的 Nginx 服务,以及 Nginx 用于存储配置文件、内容和日志的主要目录。

从这里开始,您有许多内容类型和您可能希望在您的Web服务器内托管的网站中使用的技术的选项。

Published At
Categories with 技术
comments powered by Disqus