分享最新优惠信息
购买主机更加划算

CentOS 8系统安装Nginx Web服务器及常见配置过程

Nginx是一种快速、轻量级的Web服务器,优势是Nginx的配置文件非常简单易用。它是Apache Web服务器的绝佳替代品。在本文中,惠主机将简单介绍如何在CentOS 8上安装Nginx Web服务器和常见基本配置过程。

安装Nginx

Nginx在CentOS 8的官方软件包存储库中可用。因此,它非常易于安装。

首先,按照下面命令更新DNF软件包存储库缓存:

sudo dnf makecache

Nginx安装

现在,使用以下命令安装Nginx:

$ sudo dnf install nginx

请按Y键确认安装,然后按<Enter>键

Nginx安装过程

这时候Nginx将会被安装:

Nginx安装完成

管理Nginx服务

默认情况下,nginx服务应处于非活动状态(未运行)并被禁用(不会在启动时自动启动)。

$ sudo systemctl status nginx

禁用Nginx

所以,可以按以下方式启动nginx服务:

sudo systemctl start nginx

这时可以看到nginx服务已经在运行。

$ sudo systemctl status nginx

启用Nginx

现在,将nginx服务添加到系统启动中,命令如下:

$ sudo systemctl enable nginx

配置防火墙

记住必须将防火墙配置为允许访问HTTP端口80和HTTPS端口443,以便从网络上的其他计算机访问Nginx Web服务器。

可以使用以下命令允许访问HTTP和HTTPS端口:

sudo firewall-cmd –add-service = { http,https –permanent
现在,要使更改生效,请运行以下命令:
sudo firewall-cmd –reload

测试Web服务器

必须知道Nginx Web服务器的IP地址或域名才能访问它,可以使用以下命令找到Nginx Web服务器的IP地址:

$ ip a

在本文中,IP地址为192.168.20.175,对你来说会有所不同。因此,请确保将IP地址替换成你自己的。

查看IP地址

现在,从Web浏览器访问http://192.168.20.175(替换成你自己的IP),应该看到以下页面,这意味着Nginx Web服务器正在工作。

访问web页面

配置Nginx配置文件

Nginx Web服务器配置文件位于/ etc / nginx /目录中。

tree /etc/nginx

配置Nginx

/etc/nginx/nginx.conf是主要的Nginx配置文件。

Nginx Web服务器的默认Web根目录为/ usr / share / nginx / html /。因此,这是你应该保留网站文件的地方。

Web服务器的基本设置

下面将简单介绍如何设置基本的Nginx Web服务器。

首先,使用以下命令备份原始Nginx配置文件:

sudo mv -v /etc/nginx/nginx.conf /etc/nginx/nginx.conf.original

现在,创建一个新的Nginx配置文件,如下所示:

sudo nano /etc/nginx/nginx.conf

接下来在/etc/nginx/nginx.conf文件中键入以下内容并保存该文件。

user nginx nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

server {
listen 80;
server_name example.com www.example.com;
root /usr/share/nginx/html;
index index.html;
access_log /var/log/nginx/access.log;
}
}

配置nginx

在这里,用户选项用于将Nginx运行用户和组分别设置为nginx

error_log中选项用于设置错误日志文件路径/var/log/nginx/error.log。这是与Nginx服务器相关的错误将被存储的地方。

Nginx服务器的主要配置在http部分的server部分中定义。如果需要,可以在http部分中定义多个服务器部分。

服务器部分:

listen选项用于将Nginx配置为侦听Web请求的端口80(HTTP端口)。

server_name选项用于为Nginx Web服务器设置一个或多个域名。如果您的DNS设置正确,则可以使用这些域名访问Nginx Web服务器。

access_log用于将访问日志文件路径设置为/var/log/nginx/access.log。当有人尝试访问Nginx Web服务器时,访问信息(即IP地址,URL,HTTP状态代码)将被记录到该文件中。

位置选项用于设置Nginx的Web服务器的根目录。

在这里,目录是/ usr / share / nginx / html /

这是应保存所有网站文件的位置。该指数选项设置的index.html作为默认的文件,如果没有要求特定的文件服务。例如,如果您访问http://192.168.20.175/myfile.html,则您的Nginx将返回myfile.html文件。但是,如果您访问http://192.168.20.175/,那么Nginx将向您发送index.html文件,因为没有请求任何特定文件。

现在,如下所示从/ usr / share / nginx / html /目录(网络根目录)中删除所有文件:

sudo rm -rfv /usr/share/nginx/html/*

移除nginx配置文件

现在,在/ usr / share / nginx / html /目录中创建一个新的index.html文件,如下所示:

创建新文件

现在,在index.html文件中键入以下行并保存文件。

<h1>Hello world</h1>
<p>&copy; 2020 LinuxHint.com</p>

现在,重新启动nginx服务,如下所示:

sudo systemctl restart nginx

现在,从Web浏览器访问http://192.168.20.175,您应该看到以下页面。恭喜!您已经设置了第一台Nginx Web服务器。

nginx服务配置完成

配置错误页面

可以在Nginx中配置错误页面。例如,如果页面/文件/目录不可用,则HTTP状态代码404将返回到浏览器。您可以为HTTP状态代码404设置自定义HTML错误页面,该页面将返回到浏览器。

为此,请在nginx.conf文件的server部分中添加以内容。

server {

error_page 404 /404.html;

}

配置错误页面

现在,在Nginx Web根目录/ usr / share / nginx / html /中创建文件404.html,如下所示:

$ sudo nano /usr/share/nginx/html/404.html

现在,在404.html中键入以下行并保存文件。

<h1>Error 404</h1>
<h2 style=”color: red;”>Page not found</h2>
<p>&copy; 2020 LinuxHint.com</p>

现在,重新启动nginx服务,如下所示:

$ sudo systemctl restart nginx

启动之后尝试访问不存在的路径(http://192.168.20.175/nopage.html),您应该看到以下错误页面。

错误页面

如果404.html文件位于不同的文件系统路径中(例如/ usr / share / nginx / html / errors /目录),则可以将URL /404.html映射到它,如下所示:

server {

error_page 404 /404.html;
location /404.html {
root /usr/share/nginx/html/errors;
}

}

配置错误页面

创建一个新目录  / usr / share / nginx / html / errors /,如下所示:

$ sudo mkdir /usr/share/nginx/html/errors

现在,在目录/ usr / share / nginx / html / errors /中创建一个新文件404.html,如下所示:

$ sudo nano /usr/share/nginx/html/errors/404.html

404.html文件中键入以下内容并保存文件。

<h1 style=”color: red;”>PAGE NOT FOUND</h1>
<a href=”/”>GO BACK HOME</a>

现在,重新启动nginx服务,如下所示:

$ sudo systemctl restart nginx

尝试访问不存在的路径(http://192.168.20.175/nopage.html),您应该看到更新过的错误页面。

错误页面配置

配置日志

在Nginx中,error_logaccess_log选项用于记录错误消息和访问信息。

error_logaccess_log选项的格式为:

error_log /path/to/error/log/file [optional:custom-log-name];
access_log /path/to/access/log/file [optional:custom-log-name];

您可以定义自己的错误日志并根据需要访问日志格式。

为此,请使用http部分中的log_format选项来定义您的自定义日志格式,如下所示。

http {

log_format simple ‘[$time_iso8601] $request_method $request_uri ‘
‘[$status] ($request_time) -> $bytes_sent bytes’;

server {

access_log /var/log/nginx/access.log simple;

}
}

配置错误日志

此处,日志格式名称为simple。一些nginx变量用于定义自定义日志格式,可以自己找一些资料看看。

自定义日志格式应使用单引号引起来。日志格式可以单行或多行定义。我已经在本文中展示了如何在多行中定义日志格式。单行日志格式不会有任何麻烦!

定义了简单的日志格式后,access_log选项用于告诉Nginx将其用作访问日志。

同样,您可以使用error_log选项设置自定义错误日志格式。

在本文中,我仅为访问日志配置了自定义日志格式。

现在,重新启动nginx服务,如下所示:

sudo systemctl restart nginx

现在可以按以下方式监视访问日志文件:

sudo tail -f /var/log/nginx/access.log

同时还可以按以下方式监视错误日志文件:

$ sudo tail -f /var/log/nginx/error.log

如果需要,可以同时监视访问日志和错误日志文件,如下所示:

sudo tail -f /var/log/nginx/{error,access}.log

正如所见的,正在使用新的访问日志格式。

错误日志路径设置

拒绝访问某些路径

你可以使用正则表达式来匹配某些URI路径,并在Nginx中拒绝对其进行访问。

假设你的网站是由Git管理的,并且您想拒绝访问Web根目录下的.git /目录。

为此,请在/etc/nging/nginx.conf文件的server部分中输入以下行:

server {

location ~ \.git {
deny all;
}

}
配置路径
设置之后,拒绝访问任何包含.git的路径。
路径访问设置

配置压缩文件

对于网站来说,可以先压缩Web内容,然后再使用gzip将其发送到浏览器,以节省Nginx Web服务器的带宽使用量。

我在/ usr / share / nginx / html / images /目录中有一些JPEG图像。

配置压缩文件

这时候可以使用URI路径/ images访问这些图像

要仅对URI路径/ images中的JPEG图像启用gzip压缩,请在/etc/nginx/nginx.conf文件的server部分中输入以下行。

server {

location /images {
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image/jpeg;
}

}

压缩文件配置

在这里,gzip_comp_level用于设置压缩级别。可以是1到9之间的任何数字。级别越高,压缩文件将越小。

仅当文件大小大于gzip_min_length时,才会压缩该文件。在此示例中,我将其设置为大约100 KB。因此,小于100 KB的JPEG文件不会被gzip压缩。

该  gzip_types用于设置将要压缩的文件的MIME类型。

您可以从文件扩展名中找到mime类型,如下所示:

grep jpg / etc / nginx / mime.types

如您所见,对于.jpg.jpeg文件扩展名,mime类型为image / jpeg

您可以使用gzip_types选项设置一种或多种mime类型。

如果要设置多个MIME类型,请确保使用空格将它们分开,如下所示:

gzip_types image/jpeg image/png image/gif;

现在,重新启动nginx服务,如下所示:

sudo systemctl restart nginx

如您所见,当需要时,Nginx将gzip压缩图像文件发送到浏览器。

文件压缩

如下面的屏幕截图所示,gzip压缩文件小于原始文件。

sudo tail -f /var/log/nginx/access.log

压缩文件

这样就说明Gzip压缩已经设置成功。

总结:

以上这些就是CentOS 8上安装和配置Nginx Web服务器的方式,当然除此之外,还有启用HTTPS、将HTTP请求重定向到HTTPS等配置内容,本文就不在赘述,有需要的小伙伴可以自行找些资料看看。

未经允许不得转载:惠主机 » CentOS 8系统安装Nginx Web服务器及常见配置过程

说点什么?

  • 昵称 (必填)
  • 邮箱 (必填)