介绍
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 的默认定位页面:
如果您看到此页面,那么您的 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一起提供的默认文本编辑器是vi
。vi
是一个极其强大的文本编辑器,但对于缺乏经验的用户来说,它可能有点模糊。
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
来测试你的自定义域设置,你会看到这样的东西:
此页面正在渲染我们在为服务器块创建的自定义文档根中定义的HTML代码. 如果您能够看到此页面,则意味着您的Nginx服务器已正确配置以服务您的域。
结论
在本指南中,我们已经看到如何安装和设置 Nginx,一个高性能的网页服务器和反向代理程序. 我们审查了如何管理在您的服务器上运行的 Nginx 服务,以及 Nginx 用于存储配置文件、内容和日志的主要目录。
从这里开始,您有许多内容类型和您可能希望在您的Web服务器内托管的网站中使用的技术的选项。