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

安装Nginx

Nginx在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 = { http,https }–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地址,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/*

现在,在/ 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 404

Page 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 FOUND

GO 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等配置内容,本文就不在赘述,有需要的小伙伴可以自行找些资料看看。

centos8 默认nginx路径_CentOS 8系统安装Nginx Web服务器及常见配置过程相关推荐

  1. Nginx作为web服务器的安装配置

    Nginx作为web服务器的安装配置 (关注官方网站http://nginx.org/)   Nginx简介 是一个高性能的 HTTP 和 反向代理服务器,由俄罗斯的程序设计师Igor Sysoev所 ...

  2. nginx做反向代理和后端web服务器之间的交互

    1.Nginx是什么? Nginx就是反向代理服务器. 首先我们先来看看什么是代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端.比如Go ...

  3. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架 ...

  4. nginx两台文件服务器集群,keepalived结合nginx状态检测脚本实现对web服务器集群的高可用...

    实验环境 两台CentOS-7.5虚拟机 web1:10.0.11.203 web2:10.0.11.204 VIP :10.0.11.210 web类型:nginx 客户端:自用笔记本(win10) ...

  5. 比 Nginx 性能更强的下一代 Web 服务器

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  6. ssh 登陆错误后禁止ip再次登陆_macOS破坏SSH默认规则,程序员无法登录Web服务器...

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 苹果电脑最新的10.15.4系统,你更新了吗? 如果你不幸升级,而且还是要使用SSH的用户,那么恭喜你中招了. 最近,一位名叫Taylor ...

  7. 捷克论坛最新ip地址_最新macOS破坏SSH默认规则,程序员无法登录Web服务器

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 苹果电脑最新的10.15.4系统,你更新了吗? 如果你不幸升级,而且还是要使用SSH的用户,那么恭喜你中招了. 最近,一位名叫Taylor ...

  8. nginx和squid配合搭建的web服务器前端系统

    两种前端架构: lvs -> nginx前端代理 -> squid缓存 lvs -> squid前端缓存 -> nginx中层代理 squid在前面的优点: Squid作纯代理 ...

  9. nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置

    nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置 0 之前知识回顾:  1) 目前各种服务器HTTP Server对PHP的支持一共有三种: a.通过HTTPServe ...

最新文章

  1. anaconda创建一个虚拟环境
  2. 莫言:不要在不喜欢你的人那丢掉快乐
  3. onclick事件没有反应的五种可能情况
  4. 找出MySQL瓶颈的基准测试和剖析
  5. springboot中下面哪一个作为jpa默认实现_35个超高频SpringBoot知识点(附解析),别怪我没给你机会收藏...
  6. 基础-简单的深度优先遍历
  7. php数据库操作命令精华大全
  8. 互联网晚报 | 9月3日 星期五 | vivo正式公布自研芯片V1;天猫公布今年双11节奏;网易云音乐去除歌曲“独家”标志...
  9. No dashboards are active for the current data set. 解决tensorboard无法启动和显示问题
  10. 九宫怎么排列和使用_开心数独:好友都在玩的数独九宫格小游戏,居家无聊杀时间必备!...
  11. nginx虚拟主机配置实例
  12. nginx+php简单配置环境
  13. 《仗剑啸江湖》技术支持
  14. 没有基础学UI设计真有那么难吗?
  15. Infortrend CS分布式NAS集群强项之---成本篇
  16. Microsoft Teams Voice语音落地系列-4-外传2-界面配置语音路由
  17. 直通模式+Traffic Filter
  18. 仓储服务-领取采购单
  19. axure内联框架和动态面板_最详细的Axure动态面板使用教程
  20. SketchUp Pro 2022 Mac版草图大师

热门文章

  1. 异常(Exception )
  2. 蓝桥杯java提交格式_2019第十届蓝桥杯JAVA省赛B组
  3. pycharm常用设置(keymap设置及eclipse常用快捷键总结)
  4. 03-java学习-基本数据类型-运算符-键盘接收用户输入
  5. node.js Error: connect EMFILE 或者 getaddrinfo ENOTFOUND
  6. canvas填充规则
  7. FineReport实现java报表统计图表的效果图
  8. Win7和Ubuntu14.10双系统
  9. POJ-3041 匈牙利算法 二分图最大匹配
  10. 【发现问题】Java中PrintWriter和BufferedWriter的区别