手机网站软件,企业即时通讯平台,公司网站宣传,移动应用开发公司网站模板Nginx是一种快速、轻量级的Web服务器#xff0c;优势是Nginx的配置文件非常简单易用。它是Apache Web服务器的绝佳替代品。在本文中#xff0c;惠主机将简单介绍如何在CentOS 8上安装Nginx Web服务器和常见基本配置过程。安装NginxNginx在CentOS 8的官方软件包存储库中可用。…Nginx是一种快速、轻量级的Web服务器优势是Nginx的配置文件非常简单易用。它是Apache Web服务器的绝佳替代品。在本文中惠主机将简单介绍如何在CentOS 8上安装Nginx Web服务器和常见基本配置过程。安装NginxNginx在CentOS 8的官方软件包存储库中可用。因此它非常易于安装。首先按照下面命令更新DNF软件包存储库缓存$sudo dnf makecache现在使用以下命令安装Nginx$ sudo dnf install nginx请按Y键确认安装然后按键。这时候Nginx将会被安装管理Nginx服务默认情况下nginx服务应处于非活动状态(未运行)并被禁用(不会在启动时自动启动)。$ sudo systemctl status nginx所以可以按以下方式启动nginx服务$sudo systemctl start nginx这时可以看到nginx服务已经在运行。$ sudo systemctl status nginx现在将nginx服务添加到系统启动中命令如下$ sudo systemctl enable nginx配置防火墙记住必须将防火墙配置为允许访问HTTP端口80和HTTPS端口443以便从网络上的其他计算机访问Nginx Web服务器。可以使用以下命令允许访问HTTP和HTTPS端口$sudo firewall-cmd –add-service { httphttps }–permanent现在要使更改生效请运行以下命令$sudo firewall-cmd –reload测试Web服务器必须知道Nginx Web服务器的IP地址或域名才能访问它可以使用以下命令找到Nginx Web服务器的IP地址$ ip a在本文中IP地址为192.168.20.175对你来说会有所不同。因此请确保将IP地址替换成你自己的。现在从Web浏览器访问http://192.168.20.175(替换成你自己的IP)应该看到以下页面这意味着Nginx Web服务器正在工作。配置Nginx配置文件Nginx Web服务器配置文件位于/ etc / nginx /目录中。$tree /etc/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。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地址URLHTTP状态代码)将被记录到该文件中。该位置选项用于设置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/*现在在/ usr / share / nginx / html /目录中创建一个新的index.html文件如下所示现在在index.html文件中键入以下行并保存文件。Hello world© 2020 LinuxHint.com现在重新启动nginx服务如下所示$sudo systemctl restart nginx现在从Web浏览器访问http://192.168.20.175您应该看到以下页面。恭喜您已经设置了第一台Nginx Web服务器。配置错误页面可以在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中键入以下行并保存文件。Error 404Page not found© 2020 LinuxHint.com现在重新启动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文件中键入以下内容并保存文件。PAGE NOT FOUNDGO BACK HOME现在重新启动nginx服务如下所示$ sudo systemctl restart nginx尝试访问不存在的路径(http://192.168.20.175/nopage.html)您应该看到更新过的错误页面。配置日志在Nginx中error_log和access_log选项用于记录错误消息和访问信息。error_log和access_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等配置内容本文就不在赘述有需要的小伙伴可以自行找些资料看看。