测试
<div id="main">
<div id="mainContent">
<div class="forFlow">
<div id="post_detail">
<!--done-->
<div id="topics">
<div class="post">
<h1 class="postTitle">
<a id="cb_post_title_url" class="postTitle2 vertical-middle post-del-title" href="https://www.cnblogs.com/leixixi/p/14811640.html" title="发布于 2021-05-25 08:59">
<span role="heading" aria-level="2">nginx</span>
</a><button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button>
</h1>
<div class="clear"></div>
<div class="postBody">
<div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown">
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx简介" tid="tid-xxY3G5" class="header__dev"><span style=""><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx简介</span></b></h1></span>
<p><code>nginx</code>(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。</p>
<p><code>nginx</code>由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。</p>
<p>第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。</p>
<p><code>nginx</code>的特点是占有内存少,并发能力强,事实上<code>nginx</code>的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用<code>nginx</code>网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。</p>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx的特性与优点" tid="tid-KnRNax" class="header__dev"><span style=""><b class="dev__fe"><i>2</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx的特性与优点</span></b></h1></span>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx的特性" tid="tid-acCBDr" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>2</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">nginx的特性</span></b></h2></span>
<p><code>nginx</code>是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性:</p>
<ul>
<li>在高连接并发的情况下,nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应</li>
<li>使用epoll and kqueue作为开发模型</li>
<li>nginx作为负载均衡服务器:nginx既可在内部直接支持和PHP程序对外进行服务,也可支持作为HTTP代理服务器对外进行服务</li>
<li>nginx采用C进行编写,不论系统资源开销还是CPU使用效率都比Perlbal( Perl 编写的单线程的事件驱动服务器,可充当 Web 服务器 和 HTTP 负载均衡)要好很多。</li>
</ul>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx的优点" tid="tid-rZaspz" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>2</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">nginx的优点</span></b></h2></span>
<ul>
<li>高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数</li>
<li>内存消耗少:在3万并发连接下,开启的10个nginx进程才消耗150M内存(15M*10=150M)</li>
<li>配置文件非常简单:风格跟程序一样通俗易懂</li>
<li>成本低廉:nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币</li>
<li>支持Rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组</li>
<li>内置的健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问</li>
<li>节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头</li>
<li>稳定性高:用于反向代理,宕机的概率微乎其微</li>
<li>模块化设计:模块可以动态编译</li>
<li>外围支持好:文档全,二次开发和模块较多</li>
<li>支持热部署:可以不停机重载配置文件</li>
<li>支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化</li>
</ul>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx的功能及应用类别" tid="tid-WSRQXf" class="header__dev"><span style=""><b class="dev__fe"><i>3</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx的功能及应用类别</span></b></h1></span>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="基本功能" tid="tid-QcQamJ" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>3</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">基本功能</span></b></h2></span>
<ul>
<li>静态资源的web服务器,能缓存打开的文件描述符</li>
<li>http、smtp、pop3协议的反向代理服务器</li>
<li>缓存加速、负载均衡</li>
<li>支持FastCGI(fpm,LNMP),uWSGI(Python)等</li>
<li>模块化(非DSO机制),过滤器zip、SSI及图像的大小调整</li>
<li>支持SSL</li>
</ul>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="扩展功能" tid="tid-a8d2dW" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>3</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">扩展功能</span></b></h2></span>
<ul>
<li>基于名称和IP的虚拟主机</li>
<li>支持keepalive</li>
<li>支持平滑升级</li>
<li>定制访问日志、支持使用日志缓冲区提高日志存储性能</li>
<li>支持URL重写</li>
<li>支持路径别名</li>
<li>支持基于IP及用户的访问控制</li>
<li>支持速率限制,支持并发数限制</li>
</ul>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="应用类别" tid="tid-8kKKai" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>3</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>3</i></b></span><b class="dev__developer"><span class="dev__title">应用类别</span></b></h2></span>
<ul>
<li>使用nginx结合FastCGI运行PHP、JSP、Perl等程序</li>
<li>使用nginx作反向代理、负载均衡、规则过滤</li>
<li>使用nginx运行静态HTML网页、图片</li>
<li>nginx与其他新技术的结合应用</li>
</ul>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx的模块与工作原理" tid="tid-tDwEDQ" class="header__dev"><span style=""><b class="dev__fe"><i>4</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx的模块与工作原理</span></b></h1></span>
<p><code>nginx</code>由内核和模块组成。其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。</p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="模块分类" tid="tid-R5YMdH" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>4</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">模块分类</span></b></h2></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="从结构上分为三个模块" tid="tid-65kdwQ" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">从结构上分为三个模块:</span></b></h3></span>
<ul>
<li>
<p><strong>核心模块</strong></p>
<ul>
<li>HTTP模块</li>
<li>EVENT模块</li>
<li>MAIL模块</li>
</ul>
</li>
<li>
<p><strong>基础模块</strong></p>
<ul>
<li>HTTP Access模块</li>
<li>HTTP FastCGI模块</li>
<li>HTTP Proxy模块</li>
<li>HTTP Rewrite模块</li>
</ul>
</li>
<li>
<p><strong>第三方模块</strong></p>
<ul>
<li>HTTP Upstream模块</li>
<li>Request Hash模块</li>
<li>Notice模块</li>
<li>HTTP Access Key模块</li>
</ul>
</li>
</ul>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="从功能上分为三类" tid="tid-2eSAMd" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">从功能上分为三类:</span></b></h3></span>
<ul>
<li>
<p><strong>Handlers(处理器模块)</strong></p>
<p>此类模块直接处理请求,并进行输出内容和修改headers信息等操作。handlers处理器模块一般只能有一个</p>
</li>
<li>
<p><strong>Filters(过滤器模块)</strong><br>
此类模块主要对其他处理器模块输出的内容进行修改操作,最后由nginx输出</p>
</li>
<li>
<p><strong>Proxies(代理器模块)</strong><br>
就是nginx的HTTP Upstream之类的模块,这些模块主要与后端一些服务比如fastcgi等操作交互,实现服务代理和负载均衡等功能</p>
</li>
</ul>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="补充" tid="tid-tpidzP" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">补充</span></b></h3></span>
<p><strong>nginx模块分为:核心模块、事件模块、标准Http模块、可选Http模块、邮件模块、第三方模块和补丁等</strong></p>
<p>nginx基本模块:所谓基本模块,指的是nginx默认的功能模块,它们提供的指令,允许你使用定义nginx基本功能的变量,在编译时不能被禁用,包括:</p>
<ul>
<li>核心模块:基本功能和指令,如进程管理和安全。常见的核心模块指令,大部分是放置在配置文件的顶部</li>
<li>事件模块:在Nginx内配置网络使用的能力。常见的events(事件)模块指令,大部分是放置在配置文件的顶部</li>
<li>配置模块:提供包含机制</li>
</ul>
<p>具体的指令,请参考 <code>nginx</code> 的<a href="http://nginx.org/en/docs/ngx_core_module.html" target="_blank" rel="noopener nofollow">官方文档</a></p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx的工作原理" tid="tid-735pWK" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>4</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">nginx的工作原理</span></b></h2></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="概述" tid="tid-Hnddp8" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">概述</span></b></h3></span>
<p><code>nginx</code>的模块直接被编译进<code>nginx</code>,因此属于静态编译方式。</p>
<p>启动<code>nginx</code>后,<code>nginx</code>的模块被自动加载,与<code>Apache</code>不一样,首先将模块编译为一个so文件,然后在配置文件中指定是否进行加载。</p>
<p>在解析配置文件时,<code>nginx</code>的每个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。</p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="架构图" tid="tid-tzpCkW" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">架构图</span></b></h3></span>
<p><strong><code>nginx</code>的进程架构:</strong><br>
启动<code>nginx</code>时,会启动一个<code>Master</code>进程,这个进程不处理任何客户端的请求,主要用来产生<code>worker</code>线程,一个<code>worker</code>线程用来处理n个<code>request</code>。</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015745836-398265973.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015745836-398265973.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong><code>nginx</code> 模块一次常规的HTTP请求和响应的过程如下:</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015750077-2143571431.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015750077-2143571431.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>WEB服务请求步骤如下</strong>:</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015754685-1942462153.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015754685-1942462153.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p>基本步骤概述:</p>
<ol>
<li><strong>建立连接:</strong>接收或拒绝连接请求</li>
<li><strong>接受请求:</strong>接收客户端请求报文中对某资源的一次请求的过程</li>
<li><strong>处理请求:</strong>服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选的主体部分对请求进行处理</li>
<li><strong>访问资源:</strong>服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源资源放置于本地文件系统特定的路径:DocRoot</li>
<li><strong>构建响应报文:</strong>一旦Web服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中 包含有响应状态码、响应首部,如果生成了响应主体的话,还包括响应主体</li>
<li><strong>发送响应报文:</strong>响应报文也包括三个部分,第一部分是状态行,第二部分是Headers,第三部分是Body</li>
<li><strong>记录日志:</strong>最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务</li>
</ol>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx的安装与配置" tid="tid-iwihQQ" class="header__dev"><span style=""><b class="dev__fe"><i>5</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx的安装与配置</span></b></h1></span>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx源码方式安装" tid="tid-MjMKyX" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>5</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">nginx源码方式安装</span></b></h2></span>
<code-box id="d24YeK" style="position: relative;display: block;"><button code-id="d24YeK" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-d24YeK" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-d24YeK" class="hljs typescript mCustomScrollbar _mCS_1 mCS-autoHide"><div id="mCSB_1" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_1_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-8rFWXJ"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//关闭防火墙与selinux</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>systemctl disable --now firewalld
<code-line class="line-numbers-rows" style="display: inline;"></code-line>setenforce <span class="hljs-number">0</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>sed -ri <span class="hljs-string">'s/^(SELINUX=).*/\1disabled/g'</span> /etc/selinux/config
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//创建nginx用户</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# useradd -r -M -s /sbin/nologin nginx
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# id nginx
<code-line class="line-numbers-rows" style="display: inline;"></code-line>uid=<span class="hljs-number">994</span>(nginx) gid=<span class="hljs-number">991</span>(nginx) groups=<span class="hljs-number">991</span>(nginx)
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//安装工具包和依赖包</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# yum -y install vim pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# yum -y groups mark install <span class="hljs-string">'Development tools'</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//创建日志存放目录</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# mkdir -p /<span class="hljs-keyword">var</span>/log/nginx
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# chown -R nginx.nginx /<span class="hljs-keyword">var</span>/log/nginx
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//下载nginx源码包</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> ~]# cd /usr/src/
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> src]# wget http:<span class="hljs-comment">//nginx.org/download/nginx-1.20.0.tar.gz</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> src]# ll
<code-line class="line-numbers-rows" style="display: inline;"></code-line>total <span class="hljs-number">1040</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>drwxr-xr-x. <span class="hljs-number">2</span> root root <span class="hljs-number">6</span> Aug <span class="hljs-number">12</span> <span class="hljs-number">2018</span> debug
<code-line class="line-numbers-rows" style="display: inline;"></code-line>drwxr-xr-x. <span class="hljs-number">2</span> root root <span class="hljs-number">6</span> Aug <span class="hljs-number">12</span> <span class="hljs-number">2018</span> kernels
<code-line class="line-numbers-rows" style="display: inline;"></code-line>-rw-r--r--. <span class="hljs-number">1</span> root root <span class="hljs-number">1061070</span> Apr <span class="hljs-number">20</span> <span class="hljs-number">22</span>:<span class="hljs-number">46</span> nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>.tar.gz
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//解压源码包</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> src]# tar xf nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>.tar.gz
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> src]# ls
<code-line class="line-numbers-rows" style="display: inline;"></code-line>debug kernels nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span> nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>.tar.gz
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编译安装</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> src]# cd nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>]# ./configure \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--prefix=<span class="hljs-regexp">/usr/</span>local/nginx \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--user=nginx \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--group=nginx \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-debug \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_ssl_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_realip_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_image_filter_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_gunzip_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_gzip_static_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--<span class="hljs-keyword">with</span>-http_stub_status_module \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--http-log-path=<span class="hljs-regexp">/var/</span>log/nginx/access.log \
<code-line class="line-numbers-rows" style="display: inline;"></code-line>--error-log-path=<span class="hljs-regexp">/var/</span>log/nginx/error.log
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//启用多核心加速安装</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root<span class="hljs-meta">@nginx</span> nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>]# make -j $(grep <span class="hljs-string">'processor'</span> /proc/cpuinfo | wc -l) && make install
</code-pre></div></div><div id="mCSB_1_scrollbar_vertical" class="mCSB_scrollTools mCSB_1_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_1_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_1_scrollbar_horizontal" class="mCSB_scrollTools mCSB_1_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_1_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx安装后的配置" tid="tid-5MAAbZ" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>5</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">nginx安装后的配置</span></b></h2></span>
<p><strong>配置如下:</strong></p>
<code-box id="QmKKP8" style="position: relative;display: block;"><button code-id="QmKKP8" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-QmKKP8" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-QmKKP8" class="hljs sql mCustomScrollbar _mCS_2 mCS-autoHide"><div id="mCSB_2" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_2_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-dcRC8C"><code-line class="line-numbers-rows" style="display: inline;"></code-line>//添加环境变量
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx-1.20.0]<span class="hljs-comment"># echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx-1.20.0]<span class="hljs-comment"># source /etc/profile.d/nginx.sh</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx-1.20.0]<span class="hljs-comment"># which nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>/usr/local/nginx/sbin/nginx
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>//服务控制方式,使用nginx命令,查看帮助
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx-1.20.0]<span class="hljs-comment"># nginx -help</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx version: nginx/1.20.0
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
<code-line class="line-numbers-rows" style="display: inline;"></code-line> [-e filename] [-c filename] [-g directives]
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Options:
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -?,-h : this <span class="hljs-keyword">help</span> <span class="hljs-comment">#帮助信息</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -v : <span class="hljs-keyword">show</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">and</span> <span class="hljs-keyword">exit</span> <span class="hljs-comment">#显示版本</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -V : <span class="hljs-keyword">show</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">and</span> configure options <span class="hljs-keyword">then</span> <span class="hljs-keyword">exit</span> <span class="hljs-comment">#显示版本和配置选项</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -t : <span class="hljs-keyword">test</span> configuration <span class="hljs-keyword">and</span> <span class="hljs-keyword">exit</span> <span class="hljs-comment">#测试配置并退出</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -T : <span class="hljs-keyword">test</span> configuration, dump it <span class="hljs-keyword">and</span> <span class="hljs-keyword">exit</span> <span class="hljs-comment">#测试配置</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -q : suppress non-<span class="hljs-keyword">error</span> messages during configuration testing <span class="hljs-comment">#配置测试期间只输出错误信息</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -s signal : send signal <span class="hljs-keyword">to</span> a <span class="hljs-keyword">master</span> process: <span class="hljs-keyword">stop</span>, quit, reopen, reload <span class="hljs-comment">#传递控制信号给主进程</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -p prefix : <span class="hljs-keyword">set</span> prefix <span class="hljs-keyword">path</span> (<span class="hljs-keyword">default</span>: /usr/<span class="hljs-keyword">local</span>/nginx/) <span class="hljs-comment">#设置路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -e filename : <span class="hljs-keyword">set</span> <span class="hljs-keyword">error</span> <span class="hljs-keyword">log</span> <span class="hljs-keyword">file</span> (<span class="hljs-keyword">default</span>: /<span class="hljs-keyword">var</span>/<span class="hljs-keyword">log</span>/nginx/error.log) <span class="hljs-comment">#设置错误日志路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -c filename : <span class="hljs-keyword">set</span> configuration <span class="hljs-keyword">file</span> (<span class="hljs-keyword">default</span>: conf/nginx.conf) <span class="hljs-comment">#设置配置文件路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> -g directives : <span class="hljs-keyword">set</span> <span class="hljs-keyword">global</span> directives <span class="hljs-keyword">out</span> <span class="hljs-keyword">of</span> configuration <span class="hljs-keyword">file</span> <span class="hljs-comment">#从配置文件中设置全局指令</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>]<span class="hljs-comment"># nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx<span class="hljs-number">-1.20</span><span class="hljs-number">.0</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>State Recv-Q Send-Q <span class="hljs-keyword">Local</span> Address:Port Peer Address:Port
<code-line class="line-numbers-rows" style="display: inline;"></code-line>LISTEN <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:*
<code-line class="line-numbers-rows" style="display: inline;"></code-line>LISTEN <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:*
<code-line class="line-numbers-rows" style="display: inline;"></code-line>LISTEN <span class="hljs-number">0</span> <span class="hljs-number">128</span> [::]:<span class="hljs-number">22</span> [::]:*
</code-pre></div></div><div id="mCSB_2_scrollbar_vertical" class="mCSB_scrollTools mCSB_2_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_2_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_2_scrollbar_horizontal" class="mCSB_scrollTools mCSB_2_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_2_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>网页访问测试如下:</strong></p>
<p>访问本机IP <code>192.168.110.10</code></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015725817-1672514419.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210526015725817-1672514419.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="nginx的配置文件详解" tid="tid-hWHaPR" class="header__dev"><span style=""><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">nginx的配置文件详解</span></b></h1></span>
<p><strong>nginx官方文档:</strong><a href="http://nginx.org/en/docs/" target="_blank" rel="noopener nofollow">nginx文档</a></p>
<p>主配置文件:/usr/local/nginx/conf/nginx.conf</p>
<ul>
<li>默认启动nginx时,使用的配置文件是:安装路径/conf/nginx.conf文件</li>
<li>可以在启动nginx时通过-c选项来指定要读取的配置文件</li>
</ul>
<p><strong><code>nginx</code> 常见的配置文件及其作用</strong></p>
<div class="table-wrapper"><table>
<thead>
<tr>
<th style="text-align: left">配置文件</th>
<th style="text-align: left">作用</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">nginx.conf</td>
<td style="text-align: left">nginx的基本配置文件</td>
</tr>
<tr>
<td style="text-align: left">mime.types</td>
<td style="text-align: left">MIME类型关联的扩展文件</td>
</tr>
<tr>
<td style="text-align: left">fastcgi.conf</td>
<td style="text-align: left">与fastcgi相关的配置</td>
</tr>
<tr>
<td style="text-align: left">proxy.conf</td>
<td style="text-align: left">与proxy相关的配置</td>
</tr>
<tr>
<td style="text-align: left">sites.conf</td>
<td style="text-align: left">配置nginx提供的网站,包括虚拟主机</td>
</tr>
</tbody>
</table></div>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginxconf配置详解" tid="tid-MPdySz" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">nginx.conf配置详解</span></b></h2></span>
<p>nginx.conf的内容分为以下几段:</p>
<ul>
<li>main配置段:全局配置段。其中main配置段中可能包含event配置段</li>
<li>event {}:定义event模型工作特性</li>
<li>http {}:定义http协议相关的配置</li>
</ul>
<p>配置指令:</p>
<code-box id="xexN54" style="position: relative;display: block;"><button code-id="xexN54" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-xexN54" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-xexN54" class="hljs apache mCustomScrollbar _mCS_3 mCS-autoHide"><div id="mCSB_3" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_3_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-PbmP8p"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#要以分号结尾,语法格式如下:</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">derective</span> value<span class="hljs-number">1</span><span class="hljs-meta"> [value2 ...];
</span></code-pre></div></div><div id="mCSB_3_scrollbar_vertical" class="mCSB_scrollTools mCSB_3_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_3_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_3_scrollbar_horizontal" class="mCSB_scrollTools mCSB_3_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_3_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>支持使用变量:</p>
<ul>
<li>内置变量:模块会提供内建变量定义</li>
<li>自定义变量:<code>set var_name value</code></li>
</ul>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="用于调试定位问题的配置参数" tid="tid-rrTwbr" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">用于调试、定位问题的配置参数</span></b></h2></span>
<code-box id="7nDAXz" style="position: relative;display: block;"><button code-id="7nDAXz" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-7nDAXz" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-7nDAXz" class="hljs apache mCustomScrollbar _mCS_4 mCS-autoHide"><div id="mCSB_4" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_4_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-b8s38M"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">daemon</span> {<span class="hljs-literal">on</span>|<span class="hljs-literal">off</span>}; //是否以守护进程方式运行nginx,调试时应设置为<span class="hljs-literal">off</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">master_process</span> {<span class="hljs-literal">on</span>|<span class="hljs-literal">off</span>}; //是否以master/worker模型来运行nginx,调试时可以设置为<span class="hljs-literal">off</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">error_log</span> 位置 级别; //配置错误日志
</code-pre></div></div><div id="mCSB_4_scrollbar_vertical" class="mCSB_scrollTools mCSB_4_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_4_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 73px; max-height: 62.7812px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_4_scrollbar_horizontal" class="mCSB_scrollTools mCSB_4_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_4_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>error_log 级别分为:</p>
<ul>
<li>debug</li>
<li>info,</li>
<li>notice,</li>
<li>warn</li>
<li>error</li>
<li>crit( 默认为crit)</li>
</ul>
<p>crit 记录的日志最少,而debug记录的日志最多</p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="正常运行必备的配置参数" tid="tid-J2zWth" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>3</i></b></span><b class="dev__developer"><span class="dev__title">正常运行必备的配置参数</span></b></h2></span>
<code-box id="wFaa6G" style="position: relative;display: block;"><button code-id="wFaa6G" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-wFaa6G" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-wFaa6G" class="hljs less mCustomScrollbar _mCS_5 mCS-autoHide"><div id="mCSB_5" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_5_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-H75eZn"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">user</span> <span class="hljs-selector-tag">USERNAME</span> <span class="hljs-selector-attr">[GROUPNAME]</span>; <span class="hljs-comment">//指定运行worker进程的用户和组</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">pid</span> /<span class="hljs-selector-tag">path</span>/<span class="hljs-selector-tag">to</span>/<span class="hljs-selector-tag">pid_file</span>; <span class="hljs-comment">//指定nginx守护进程的pid文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">worker_rlimit_nofile</span> <span class="hljs-selector-tag">number</span>; <span class="hljs-comment">//设置所有worker进程最大可以打开的文件数,默认为1024</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">worker_rlimit_core</span> <span class="hljs-selector-tag">size</span>; <span class="hljs-comment">//指明所有worker进程所能够使用的总体的最大核心文件大小,保持默认即可</span>
</code-pre></div></div><div id="mCSB_5_scrollbar_vertical" class="mCSB_scrollTools mCSB_5_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_5_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_5_scrollbar_horizontal" class="mCSB_scrollTools mCSB_5_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_5_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="优化性能的配置参数" tid="tid-s5S6y4" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>4</i></b></span><b class="dev__developer"><span class="dev__title">优化性能的配置参数</span></b></h2></span>
<code-box id="AiAPbk" style="position: relative;display: block;"><button code-id="AiAPbk" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-AiAPbk" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-AiAPbk" class="hljs yaml mCustomScrollbar _mCS_6 mCS-autoHide"><div id="mCSB_6" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_6_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-JBFptR"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">worker_processes</span> <span class="hljs-string">n;</span> <span class="hljs-string">//启动n个worker进程,这里的n为了避免上下文切换,通常设置为cpu总核心数-1或等于总核心数</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">worker_cpu_affinity</span> <span class="hljs-string">cpumask</span> <span class="hljs-string">...;</span> <span class="hljs-string">//将进程绑定到某cpu中,避免频繁刷新缓存</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//cpumask:使用8位二进制表示cpu核心,如:</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0000 </span><span class="hljs-number">0001</span> <span class="hljs-string">//第一颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0000 </span><span class="hljs-number">0010</span> <span class="hljs-string">//第二颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0000 </span><span class="hljs-number">0100</span> <span class="hljs-string">//第三颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0000 </span><span class="hljs-number">1000</span> <span class="hljs-string">//第四颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0001 </span><span class="hljs-number">0000</span> <span class="hljs-string">//第五颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0010 </span><span class="hljs-number">0000</span> <span class="hljs-string">//第六颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">0100 </span><span class="hljs-number">0000</span> <span class="hljs-string">//第七颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">1000 </span><span class="hljs-number">0000</span> <span class="hljs-string">//第八颗cpu核心</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">timer_resolution</span> <span class="hljs-string">interval;</span> <span class="hljs-string">//计时器解析度。降低此值,可减少gettimeofday()系统调用的次数</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">worker_priority</span> <span class="hljs-string">number;</span> <span class="hljs-string">//指明worker进程的nice值</span>
</code-pre></div></div><div id="mCSB_6_scrollbar_vertical" class="mCSB_scrollTools mCSB_6_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_6_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 329px; max-height: 318.719px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_6_scrollbar_horizontal" class="mCSB_scrollTools mCSB_6_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_6_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="事件相关的配置event段中的配置参数" tid="tid-siAWFQ" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>5</i></b></span><b class="dev__developer"><span class="dev__title">事件相关的配置:event{}段中的配置参数</span></b></h2></span>
<code-box id="rpk6T8" style="position: relative;display: block;"><button code-id="rpk6T8" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-rpk6T8" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-rpk6T8" class="hljs csharp mCustomScrollbar _mCS_7 mCS-autoHide"><div id="mCSB_7" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_7_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1251px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-pi8Ph5"><code-line class="line-numbers-rows" style="display: inline;"></code-line>accept_mutex {off|<span class="hljs-keyword">on</span>}; <span class="hljs-comment">//master调度用户请求至各worker进程时使用的负载均衡锁;on表示能让多个worker轮流地、序列化地去响应新请求</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>lock_file file; <span class="hljs-comment">//accept_mutex用到的互斥锁锁文件路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>use [epoll | rtsig | <span class="hljs-keyword">select</span> | poll]; <span class="hljs-comment">//指明使用的事件模型,建议让nginx自行选择</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>worker_connections <span class="hljs-meta">#; //每个进程能够接受的最大连接数</span>
</code-pre></div></div><div id="mCSB_7_scrollbar_vertical" class="mCSB_scrollTools mCSB_7_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_7_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_7_scrollbar_horizontal" class="mCSB_scrollTools mCSB_7_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_7_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 612px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="网络连接相关的配置参数" tid="tid-PQFw65" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>6</i></b></span><b class="dev__developer"><span class="dev__title">网络连接相关的配置参数</span></b></h2></span>
<code-box id="z2mEMJ" style="position: relative;display: block;"><button code-id="z2mEMJ" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-z2mEMJ" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-z2mEMJ" class="hljs typescript mCustomScrollbar _mCS_8 mCS-autoHide"><div id="mCSB_8" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_8_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-ikNEES"><code-line class="line-numbers-rows" style="display: inline;"></code-line>keepalive_timeout <span class="hljs-built_in">number</span>; <span class="hljs-comment">//长连接的超时时长,默认为65s</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>keepalive_requests <span class="hljs-built_in">number</span>; <span class="hljs-comment">//在一个长连接上所能够允许请求的最大资源数</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>keepalive_disable [msie6|safari|none]; <span class="hljs-comment">//为指定类型的UserAgent禁用长连接</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>tcp_nodelay on|off; <span class="hljs-comment">//是否对长连接使用TCP_NODELAY选项,为了提升用户体验,通常设为on</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>client_header_timeout <span class="hljs-built_in">number</span>; <span class="hljs-comment">//读取http请求报文首部的超时时长</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>client_body_timeout <span class="hljs-built_in">number</span>; <span class="hljs-comment">//读取http请求报文body部分的超时时长</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>send_timeout <span class="hljs-built_in">number</span>; <span class="hljs-comment">//发送响应报文的超时时长</span>
</code-pre></div></div><div id="mCSB_8_scrollbar_vertical" class="mCSB_scrollTools mCSB_8_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_8_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_8_scrollbar_horizontal" class="mCSB_scrollTools mCSB_8_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_8_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="fastcgi的相关配置参数" tid="tid-6GAYrZ" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>7</i></b></span><b class="dev__developer"><span class="dev__title">fastcgi的相关配置参数</span></b></h2></span>
<p>LNMP部署时候需要:php要启用fpm模型<br>
配置示例如下:</p>
<code-box id="BAMYd5" style="position: relative;display: block;"><button code-id="BAMYd5" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-BAMYd5" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-BAMYd5" class="hljs ruby mCustomScrollbar _mCS_9 mCS-autoHide"><div id="mCSB_9" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_9_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1683px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-dMNz5f"><code-line class="line-numbers-rows" style="display: inline;"></code-line>location ~ \.php$ { root html; fastcgi_pass <span class="hljs-number">127.0</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">9000</span>; <span class="hljs-regexp">//</span>定义反向代理 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; <span class="hljs-keyword">include</span> fastcgi_params;}
</code-pre></div></div><div id="mCSB_9_scrollbar_vertical" class="mCSB_scrollTools mCSB_9_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_9_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_9_scrollbar_horizontal" class="mCSB_scrollTools mCSB_9_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_9_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 455px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="常需要进行调整的参数" tid="tid-Dkthhw" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>8</i></b></span><b class="dev__developer"><span class="dev__title">常需要进行调整的参数</span></b></h2></span>
<ul>
<li>
<p>worker_processes <strong>工作进程数</strong></p>
<ul>
<li>1.默认:worker_processes: 1</li>
<li>2.调大:worker_processes: CPU核心数,(双核4线程,可以设置为4)</li>
</ul>
</li>
<li>
<p>worker_connections <strong>单个工作进程可以允许同时建立外部连接的数量</strong></p>
<p>数字越大,能同时处理的连接越多</p>
<ul>
<li>1.默认:worker_connections: 1024</li>
<li>2.调大:worker_connections: 100000,(调大到10万连接)</li>
</ul>
</li>
<li>
<p>worker_cpu_affinity <strong>性能优化CPU,绑定物理cup</strong></p>
</li>
<li>
<p>worker_priority <strong>work进程nice值</strong></p>
</li>
</ul>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="nginx作为web服务器时使用的配置http段的配置参数" tid="tid-7f34ik" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>9</i></b></span><b class="dev__developer"><span class="dev__title">nginx作为web服务器时使用的配置:http{}段的配置参数</span></b></h2></span>
<p>http{...}:配置http相关,由ngx_http_core_module模块引入。nginx的HTTP配置主要包括四个区块,结构如下:</p>
<code-box id="zS7QSM" style="position: relative;display: block;"><button code-id="zS7QSM" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-zS7QSM" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-zS7QSM" class="hljs properties mCustomScrollbar _mCS_10 mCS-autoHide"><div id="mCSB_10" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_10_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1083px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-tKtQND"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">http</span> <span class="hljs-string">{ //协议级别</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">include</span> <span class="hljs-string">mime.types; //包含mime.types(定义的对应关系来告诉浏览器如何处理服务器传给浏览器的这个文件,是打开还是下载)</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">default_type</span> <span class="hljs-string">application/octet-stream;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">keepalive_timeout</span> <span class="hljs-string">65;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">gzip</span> <span class="hljs-string">on;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">upstream</span> <span class="hljs-string">{ //负载均衡配置</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">...</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">server</span> <span class="hljs-string">{ //服务器级别,每个server类似于httpd中的一个 <VirtualHost> 表示虚拟主机</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">listen</span> <span class="hljs-string">80; //监听的端口号</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">server_name</span> <span class="hljs-string">localhost; //虚拟主机名称,域名</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">location</span> <span class="hljs-string">/ { //请求级别,类似于httpd中的<Location>,用于定义URL与本地文件系统的映射关系</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">root</span> <span class="hljs-string">html; //相对路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">index</span> <span class="hljs-string">index.html index.htm; //优先访问前面的网页</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">}</span>
</code-pre></div></div><div id="mCSB_10_scrollbar_vertical" class="mCSB_scrollTools mCSB_10_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_10_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_10_scrollbar_horizontal" class="mCSB_scrollTools mCSB_10_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_10_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 707px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>http{}段配置指令:</strong></p>
<p>server {}:定义一个虚拟主机,示例如下:</p>
<code-box id="NfXYHf" style="position: relative;display: block;"><button code-id="NfXYHf" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-NfXYHf" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-NfXYHf" class="hljs cpp mCustomScrollbar _mCS_11 mCS-autoHide"><div id="mCSB_11" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_11_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-dtDXRd"><code-line class="line-numbers-rows" style="display: inline;"></code-line>server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> listen <span class="hljs-number">80</span>; <span class="hljs-comment">//监听端口</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name www.xxxx.com; <span class="hljs-comment">//域名</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root <span class="hljs-string">"/vhosts/web"</span>; <span class="hljs-comment">//网页存放路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>}
</code-pre></div></div><div id="mCSB_11_scrollbar_vertical" class="mCSB_scrollTools mCSB_11_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_11_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 124px; max-height: 113.969px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_11_scrollbar_horizontal" class="mCSB_scrollTools mCSB_11_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_11_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>listen:指定监听的地址和端口</p>
<code-box id="MNrDSR" style="position: relative;display: block;"><button code-id="MNrDSR" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-MNrDSR" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-MNrDSR" class="hljs less mCustomScrollbar _mCS_12 mCS-autoHide"><div id="mCSB_12" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_12_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-pX52w6"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">listen</span> <span class="hljs-selector-tag">address</span><span class="hljs-selector-attr">[:port]</span>; <span class="hljs-comment">//指定IP地址+端口</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">listen</span> <span class="hljs-selector-tag">port</span>; <span class="hljs-comment">//默认方式:指定端口</span>
</code-pre></div></div><div id="mCSB_12_scrollbar_vertical" class="mCSB_scrollTools mCSB_12_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_12_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_12_scrollbar_horizontal" class="mCSB_scrollTools mCSB_12_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_12_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><code>server_name NAME [...];</code> 后面可跟多个主机,名称可使用正则表达式或通配符</p>
<p><strong>当有多个server时,匹配顺序如下:</strong></p>
<ol>
<li>先做精确匹配检查</li>
<li>左侧通配符匹配检查,如<code>*.idfsoft.com</code></li>
<li>右侧通配符匹配检查,如<code>mail.*</code></li>
<li>正则表达式匹配检查,如<code>~ ^.*\.idfsoft\.com$</code></li>
<li>default_server</li>
</ol>
<p><code>root path;</code> 设置资源路径映射,用于指明请求的URL所对应的资源所在的文件系统上的起始路径</p>
<p><code>alias path;</code> 用于location配置段,定义路径别名</p>
<p><code>index file;</code> 默认主页面</p>
<code-box id="HpNYGG" style="position: relative;display: block;"><button code-id="HpNYGG" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-HpNYGG" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-HpNYGG" class="hljs css mCustomScrollbar _mCS_13 mCS-autoHide"><div id="mCSB_13" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_13_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-5xKfAz"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">index</span> <span class="hljs-selector-tag">index</span><span class="hljs-selector-class">.php</span> <span class="hljs-selector-tag">index</span><span class="hljs-selector-class">.html</span>;
</code-pre></div></div><div id="mCSB_13_scrollbar_vertical" class="mCSB_scrollTools mCSB_13_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_13_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_13_scrollbar_horizontal" class="mCSB_scrollTools mCSB_13_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_13_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><code>error_page code [...] [=code] URI | @name</code> 根据http响应状态码来指明特用的错误页面,例如 <code>error_page 404 /404_customed.html</code></p>
<p>[=code]:以指定的响应码进行响应,而不是默认的原来的响应,默认表示以新资源的响应码为其响应码,例如 <code>error_page 404 =200 /404_customed.html</code></p>
<p><strong>注意:</strong>访问404的时候跳转到200表示成功,使访问更加友好。</p>
<p><code>log_format</code> 定义日志格式</p>
<code-box id="eSA8Hm" style="position: relative;display: block;"><button code-id="eSA8Hm" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-eSA8Hm" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-eSA8Hm" class="hljs rust mCustomScrollbar _mCS_14 mCS-autoHide"><div id="mCSB_14" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_14_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-rTHKBZ"><code-line class="line-numbers-rows" style="display: inline;"></code-line>log_format main '$remote_addr - $remote_user [$time_local] <span class="hljs-string">"$request"</span> '
<code-line class="line-numbers-rows" style="display: inline;"></code-line> '$status $body_bytes_sent <span class="hljs-string">"$http_referer"</span> '
<code-line class="line-numbers-rows" style="display: inline;"></code-line> '<span class="hljs-string">"$http_user_agent"</span> <span class="hljs-string">"$http_x_forwarded_for"</span>';
<code-line class="line-numbers-rows" style="display: inline;"></code-line>access_log logs/access.log main; <span class="hljs-comment">//这里的main可以自定义名称,但是上下配置要一致,access.log是日志名称</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//注意:此处可用变量为nginx各模块内建变量</span>
</code-pre></div></div><div id="mCSB_14_scrollbar_vertical" class="mCSB_scrollTools mCSB_14_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_14_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 150px; max-height: 139.562px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_14_scrollbar_horizontal" class="mCSB_scrollTools mCSB_14_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_14_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>日志内容</p>
<code-box id="ZNGdmc" style="position: relative;display: block;"><button code-id="ZNGdmc" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-ZNGdmc" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-ZNGdmc" class="hljs yaml mCustomScrollbar _mCS_15 mCS-autoHide"><div id="mCSB_15" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_15_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1819px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-eGDxzs"><code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">logs</span>]<span class="hljs-comment"># tail -f access.log </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:20:49:40</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
</code-pre></div></div><div id="mCSB_15_scrollbar_vertical" class="mCSB_scrollTools mCSB_15_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_15_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_15_scrollbar_horizontal" class="mCSB_scrollTools mCSB_15_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_15_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 421px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>location区段,通过指定模式来与客户端请求的URI相匹配</strong></p>
<p>需要配合echo模块使用,详情请见:<a href="https://www.cnblogs.com/leixixi/p/14829274.html" target="_blank">nginx平滑升级</a></p>
<code-box id="eNWJSB" style="position: relative;display: block;"><button code-id="eNWJSB" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-eNWJSB" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-eNWJSB" class="hljs cpp mCustomScrollbar _mCS_16 mCS-autoHide"><div id="mCSB_16" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_16_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1515px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-iB4Kit"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//功能:允许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应的location配置块中的配置所处理,例如做访问控制等功能//语法:location [ 修饰符 ] pattern {......}</span>
</code-pre></div></div><div id="mCSB_16_scrollbar_vertical" class="mCSB_scrollTools mCSB_16_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_16_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_16_scrollbar_horizontal" class="mCSB_scrollTools mCSB_16_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_16_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 505px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>常用修饰符说明:</strong></p>
<div class="table-wrapper"><table>
<thead>
<tr>
<th style="text-align: center">修饰符</th>
<th style="text-align: left">功能</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">=</td>
<td style="text-align: left">精确匹配</td>
</tr>
<tr>
<td style="text-align: center">~</td>
<td style="text-align: left">正则表达式模式匹配,区分大小写</td>
</tr>
<tr>
<td style="text-align: center">~*</td>
<td style="text-align: left">正则表达式模式匹配,不区分大小写</td>
</tr>
<tr>
<td style="text-align: center">^~</td>
<td style="text-align: left">前缀匹配,类似于无修饰符的行为,也是以指定模块开始,不同的是,如果模式匹配,那么就停止搜索其他模式了,不支持正则表达式</td>
</tr>
<tr>
<td style="text-align: center">@</td>
<td style="text-align: left">定义命名location区段,这些区段客户端不能访问,只可以由内部产生的请求来访问,如try_files或error_page等</td>
</tr>
</tbody>
</table></div>
<p><strong>没有修饰符表示必须以指定模式开始</strong>,如:</p>
<code-box id="6HaRfD" style="position: relative;display: block;"><button code-id="6HaRfD" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-6HaRfD" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-6HaRfD" class="hljs nginx mCustomScrollbar _mCS_17 mCS-autoHide"><div id="mCSB_17" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_17_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-QrWRhe"><code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-section">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">server_name</span> localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"1"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
</code-pre></div></div><div id="mCSB_17_scrollbar_vertical" class="mCSB_scrollTools mCSB_17_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_17_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 150px; max-height: 139.562px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_17_scrollbar_horizontal" class="mCSB_scrollTools mCSB_17_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_17_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>那么如下内容就可正确匹配:</p>
<ul>
<li><a href="http://ip/test" target="_blank" rel="noopener nofollow">http://ip/test</a></li>
<li><a href="http://ip/test?p1=1&p2=2" target="_blank" rel="noopener nofollow">http://ip/test?p1=1&p2=2</a></li>
<li><a href="http://ip/test/" target="_blank" rel="noopener nofollow">http://ip/test/</a></li>
</ul>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035203278-234637494.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035203278-234637494.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>=:表示必须与指定的模式精确匹配</strong>,如:</p>
<code-box id="B3y5WZ" style="position: relative;display: block;"><button code-id="B3y5WZ" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-B3y5WZ" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-B3y5WZ" class="hljs nginx mCustomScrollbar _mCS_18 mCS-autoHide"><div id="mCSB_18" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_18_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-YrZCtx"><code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-section">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">server_name</span> localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">root</span> html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">index</span> index.html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"1"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> = /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"2"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
</code-pre></div></div><div id="mCSB_18_scrollbar_vertical" class="mCSB_scrollTools mCSB_18_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_18_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_18_scrollbar_horizontal" class="mCSB_scrollTools mCSB_18_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_18_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>那么如下内容就可正确匹配:</p>
<ul>
<li><a href="http://ip/test" target="_blank" rel="noopener nofollow">http://ip/test</a></li>
<li><a href="http://ip/test?p1=1&p2=2" target="_blank" rel="noopener nofollow">http://ip/test?p1=1&p2=2</a></li>
</ul>
<p>如下内容则无法匹配:</p>
<ul>
<li><a href="http://ip/test/" target="_blank" rel="noopener nofollow">http://ip/test/</a></li>
<li><a href="http://ip/test/abc" target="_blank" rel="noopener nofollow">http://ip/test/abc</a></li>
</ul>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035208484-2042027024.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035208484-2042027024.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>~:表示指定的正则表达式要区分大小写</strong>,如:</p>
<code-box id="iMSAJn" style="position: relative;display: block;"><button code-id="iMSAJn" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-iMSAJn" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-iMSAJn" class="hljs nginx mCustomScrollbar _mCS_19 mCS-autoHide"><div id="mCSB_19" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_19_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-TfxhZ8"><code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-section">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">server_name</span> localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">root</span> html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">index</span> index.html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"1"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> <span class="hljs-regexp">~ ^/test$</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"2"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
</code-pre></div></div><div id="mCSB_19_scrollbar_vertical" class="mCSB_scrollTools mCSB_19_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_19_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 329px; max-height: 318.719px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_19_scrollbar_horizontal" class="mCSB_scrollTools mCSB_19_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_19_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>那么如下内容就可正确匹配:</p>
<ul>
<li><a href="http://www.ip/test" target="_blank" rel="noopener nofollow">http://www.ip/test</a></li>
<li><a href="http://www.ip/test?p1=1&p2=2" target="_blank" rel="noopener nofollow">http://www.ip/test?p1=1&p2=2</a></li>
</ul>
<p>如下内容则无法匹配:</p>
<ul>
<li><a href="http://www.ip.com/test/" target="_blank" rel="noopener nofollow">http://www.ip.com/test/</a></li>
<li><a href="http://www.ip.com/TEST" target="_blank" rel="noopener nofollow">http://www.ip.com/TEST</a></li>
<li><a href="http://www.ip.com/testabc" target="_blank" rel="noopener nofollow">http://www.ip.com/testabc</a></li>
</ul>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035215301-2079534700.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035215301-2079534700.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>~*:表示指定的正则表达式不区分大小写</strong>,如:</p>
<code-box id="SFGPY3" style="position: relative;display: block;"><button code-id="SFGPY3" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-SFGPY3" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-SFGPY3" class="hljs nginx mCustomScrollbar _mCS_20 mCS-autoHide"><div id="mCSB_20" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_20_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-YPp8CS"><code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-section">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">server_name</span> localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">root</span> html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">index</span> index.html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"1"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> <span class="hljs-regexp">~* /test$</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">echo</span> <span class="hljs-string">"3"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
</code-pre></div></div><div id="mCSB_20_scrollbar_vertical" class="mCSB_scrollTools mCSB_20_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_20_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 329px; max-height: 318.719px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_20_scrollbar_horizontal" class="mCSB_scrollTools mCSB_20_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_20_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>那么如下内容就可正确匹配:</p>
<ul>
<li><a href="http://ip/test" target="_blank" rel="noopener nofollow">http://ip/test</a></li>
<li><a href="http://ip/test?p1=1&p2=2" target="_blank" rel="noopener nofollow">http://ip/test?p1=1&p2=2</a></li>
<li><a href="http://ip/TEST" target="_blank" rel="noopener nofollow">http://ip/TEST</a></li>
</ul>
<p>如下内容则无法匹配:</p>
<ul>
<li><a href="http://ip/abc/" target="_blank" rel="noopener nofollow">http://ip/abc/</a></li>
<li><a href="http://ip/abcde" target="_blank" rel="noopener nofollow">http://ip/abcde</a></li>
</ul>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035221780-1175455909.png"><img src="https://img2020.cnblogs.com/blog/2215668/202105/2215668-20210531035221780-1175455909.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>~:类似于无修饰符的行为,也是以指定模式开始,不同的是,如果模式匹配,则停止搜索其他模式</strong></p>
<p><strong>查找顺序和优先级:由高到底依次为</strong></p>
<ol>
<li>带有<code>=</code>的精确匹配优先</li>
<li>正则表达式按照他们在配置文件中定义的顺序</li>
<li>带有<code>^~</code>修饰符的,开头匹配</li>
<li>带有<code>~</code>或<code>~*</code>修饰符的,如果正则表达式与URI匹配</li>
<li>没有修饰符的精确匹配</li>
</ol>
<p><strong>优先级次序如下:</strong></p>
<code-box id="m4xTBf" style="position: relative;display: block;"><button code-id="m4xTBf" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-m4xTBf" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-m4xTBf" class="hljs rust mCustomScrollbar _mCS_21 mCS-autoHide"><div id="mCSB_21" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_21_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1051px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-2GKB6C"><code-line class="line-numbers-rows" style="display: inline;"></code-line>( location = 路径 ) --> ( location ^~ 路径 ) --> ( location ~ 正则 ) --> ( location ~* 正则 ) --> ( location 路径 )
</code-pre></div></div><div id="mCSB_21_scrollbar_vertical" class="mCSB_scrollTools mCSB_21_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_21_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_21_scrollbar_horizontal" class="mCSB_scrollTools mCSB_21_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_21_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 728px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="访问控制" tid="tid-AXZjAD" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>10</i></b></span><b class="dev__developer"><span class="dev__title">访问控制</span></b></h2></span>
<p>allow:设定允许哪台或哪些主机访问,多个参数间用空格隔开<br>
deny:设定禁止哪台或哪些主机访问,多个参数间用空格隔开</p>
<p><strong>注意:</strong>不写deny默认就是allow</p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="示例" tid="tid-AdctkR" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">示例:</span></b></h3></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="用于location段-针对网站服务的某个资源" tid="tid-YE8fPW" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">用于location段: 针对网站服务的某个资源</span></b></h3></span>
<p><strong>创建一个测试网页,访问测试</strong></p>
<code-box id="kQT8yc" style="position: relative;display: block;"><button code-id="kQT8yc" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-kQT8yc" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-kQT8yc" class="hljs csharp mCustomScrollbar _mCS_22 mCS-autoHide"><div id="mCSB_22" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_22_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-jEz8Y3"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//在html下创建一个test目录,存放一个测试网页</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx ~</span>]<span class="hljs-meta"># cd /usr/local/nginx/html/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># echo "Hellow My Friend!" > test/index.html</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># cat test/index.html </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Hellow My Friend!
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//修改nginx默认首页,方便接下来的演示</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx ~</span>]<span class="hljs-meta"># cd /usr/local/nginx/html/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">50</span>x.html index.html test
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#备份默认网页</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># cp index.html index.html.bak</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">50</span>x.html index.html index.html.bak test
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#修改默认首页内容</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># echo 'Welcom to nginx!' > index.html</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//访问测试</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#启动nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#测试</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># curl 192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Welcom to nginx!
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx html</span>]<span class="hljs-meta"># curl 192.168.110.10/test/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Hellow My Friend!
</code-pre></div></div><div id="mCSB_22_scrollbar_vertical" class="mCSB_scrollTools mCSB_22_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_22_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 713px; max-height: 702.625px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_22_scrollbar_horizontal" class="mCSB_scrollTools mCSB_22_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_22_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>禁止192.168.110.10访问test目录下的网页</strong></p>
<code-box id="kS2KpA" style="position: relative;display: block;"><button code-id="kS2KpA" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-kS2KpA" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-kS2KpA" class="hljs csharp mCustomScrollbar _mCS_23 mCS-autoHide"><div id="mCSB_23" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_23_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-Y7iZWH"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#编辑location字段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> listen <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> index index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location /test { <span class="hljs-comment">//这里的test只限制test目录下的网页内容</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> deny <span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span>; <span class="hljs-comment">//只限制这一个IP地址禁止访问test目录下的网页,其它主机正常访问</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//检查nginx配置文件是否有误,并重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax <span class="hljs-keyword">is</span> ok
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: configuration file /usr/local/nginx/conf/nginx.conf test <span class="hljs-keyword">is</span> successful
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//访问测试,本机192.168.110.10访问不到test目录下的网页,可以访问nginx默认首页</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># curl 192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Welcom to nginx!
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># curl 192.168.110.10/test/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><html>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><head><title><span class="hljs-number">403</span> Forbidden</title></head>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><body>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><center><h1><span class="hljs-number">403</span> Forbidden</h1></center>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><hr><center>nginx/<span class="hljs-number">1.20</span><span class="hljs-number">.0</span></center>
<code-line class="line-numbers-rows" style="display: inline;"></code-line></body>
<code-line class="line-numbers-rows" style="display: inline;"></code-line></html>
</code-pre></div></div><div id="mCSB_23_scrollbar_vertical" class="mCSB_scrollTools mCSB_23_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_23_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_23_scrollbar_horizontal" class="mCSB_scrollTools mCSB_23_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_23_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035308330-576940530.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035308330-576940530.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>只允许192.168.110.10访问test目录下的网页</strong></p>
<code-box id="jBXHpH" style="position: relative;display: block;"><button code-id="jBXHpH" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-jBXHpH" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-jBXHpH" class="hljs csharp mCustomScrollbar _mCS_24 mCS-autoHide"><div id="mCSB_24" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_24_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-GRMkSf"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#编辑location字段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> listen <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> index index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> allow <span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span>; <span class="hljs-comment">//只放行这一个IP地址访问</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> deny all; <span class="hljs-comment">//拒绝其他所有访问</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//检查nginx配置文件是否有误,并重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax <span class="hljs-keyword">is</span> ok
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: configuration file /usr/local/nginx/conf/nginx.conf test <span class="hljs-keyword">is</span> successful
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//访问测试,只要192.168.110.10可以访问test目录下的内容,其它被拒绝</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># curl 192.168.110.10/test/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Hellow My Friend!
</code-pre></div></div><div id="mCSB_24_scrollbar_vertical" class="mCSB_scrollTools mCSB_24_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_24_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_24_scrollbar_horizontal" class="mCSB_scrollTools mCSB_24_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_24_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035319761-526652107.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035319761-526652107.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="用于server段针对整个网站" tid="tid-WyTJsW" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">用于server段:针对整个网站</span></b></h3></span>
<p><strong>只允许192.168.110.10访问网站</strong></p>
<code-box id="PmQ2Fh" style="position: relative;display: block;"><button code-id="PmQ2Fh" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-PmQ2Fh" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-PmQ2Fh" class="hljs csharp mCustomScrollbar _mCS_25 mCS-autoHide"><div id="mCSB_25" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_25_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-ksR4kB"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#编辑server字段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> listen <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> allow <span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> deny all;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> index index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//检查nginx配置文件是否有误,并重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax <span class="hljs-keyword">is</span> ok
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: configuration file /usr/local/nginx/conf/nginx.conf test <span class="hljs-keyword">is</span> successful
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//访问测试,只允许192.168.110.10访问网页</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># curl 192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Welcom to nginx!
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># curl 192.168.110.10/test/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Hellow My Friend!
</code-pre></div></div><div id="mCSB_25_scrollbar_vertical" class="mCSB_scrollTools mCSB_25_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_25_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_25_scrollbar_horizontal" class="mCSB_scrollTools mCSB_25_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_25_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035326240-1247641152.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035326240-1247641152.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="基于用户认证" tid="tid-Z8GQcQ" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>11</i></b></span><b class="dev__developer"><span class="dev__title">基于用户认证</span></b></h2></span>
<code-box id="Qfxt5P" style="position: relative;display: block;"><button code-id="Qfxt5P" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-Qfxt5P" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-Qfxt5P" class="hljs nginx mCustomScrollbar _mCS_26 mCS-autoHide"><div id="mCSB_26" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_26_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-x67ztp"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">auth_basic</span> <span class="hljs-string">"欢迎信息"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">auth_basic_user_file</span> <span class="hljs-string">"/path/to/user_auth_file"</span>
</code-pre></div></div><div id="mCSB_26_scrollbar_vertical" class="mCSB_scrollTools mCSB_26_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_26_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_26_scrollbar_horizontal" class="mCSB_scrollTools mCSB_26_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_26_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>user_auth_file内容格式为:</p>
<code-box id="p3AmkP" style="position: relative;display: block;"><button code-id="p3AmkP" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-p3AmkP" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-p3AmkP" class="hljs css mCustomScrollbar _mCS_27 mCS-autoHide"><div id="mCSB_27" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_27_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-Pj7Nab"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-selector-tag">username</span><span class="hljs-selector-pseudo">:password</span>
</code-pre></div></div><div id="mCSB_27_scrollbar_vertical" class="mCSB_scrollTools mCSB_27_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_27_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_27_scrollbar_horizontal" class="mCSB_scrollTools mCSB_27_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_27_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>这里的密码为加密后的密码串,建议用htpasswd来创建此文件:</p>
<code-box id="pHNw7f" style="position: relative;display: block;"><button code-id="pHNw7f" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-pHNw7f" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-pHNw7f" class="hljs coffeescript mCustomScrollbar _mCS_28 mCS-autoHide"><div id="mCSB_28" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_28_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-FMzzhR"><code-line class="line-numbers-rows" style="display: inline;"></code-line>htpasswd -c -m <span class="hljs-regexp">/path/to/</span>.user_auth_file USERNAME
</code-pre></div></div><div id="mCSB_28_scrollbar_vertical" class="mCSB_scrollTools mCSB_28_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_28_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 22px; max-height: 11.5938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_28_scrollbar_horizontal" class="mCSB_scrollTools mCSB_28_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_28_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="示例-1" tid="tid-bzijxH" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">示例:</span></b></h3></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="用于location段-访问网站某个资源时候需要用户认证" tid="tid-skaCZf" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">用于location段: 访问网站某个资源时候需要用户认证</span></b></h3></span>
<p><strong>test目录下的网页内容需要用户(eric)认证</strong></p>
<code-box id="i4YDZ3" style="position: relative;display: block;"><button code-id="i4YDZ3" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-i4YDZ3" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-i4YDZ3" class="hljs perl mCustomScrollbar _mCS_29 mCS-autoHide"><div id="mCSB_29" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_29_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-RRNiYE"><code-line class="line-numbers-rows" style="display: inline;"></code-line>//安装htpasswd命令
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx ~]<span class="hljs-comment"># yum -y install httpd-tools</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>//创建一个加密文件,用户名是eric密码是<span class="hljs-number">123456</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#注意这里的用户,是虚拟用户,本机不能有此用户</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># htpasswd -c -m .user_auth_file eric</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>New password:(输入<span class="hljs-number">123456</span>)
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Re-type new password:(输入<span class="hljs-number">123456</span>)
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Adding password <span class="hljs-keyword">for</span> user eric
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#加密文件名称为.user_auth_file</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># ls -a</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>. client_body_temp fastcgi_temp logs sbin .user_auth_file
<code-line class="line-numbers-rows" style="display: inline;"></code-line>.. conf html proxy_temp scgi_temp uwsgi_temp
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#查看加密文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># cat .user_auth_file </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>eric:$apr1$YC85KT2I$cDWQztvrJrN4tw1yrJF1H/
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-regexp">//</span>编辑配置文件
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#编辑location字段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-keyword">listen</span> <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-keyword">index</span> index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location /test {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-keyword">index</span> index.html
<code-line class="line-numbers-rows" style="display: inline;"></code-line> auth_basic <span class="hljs-string">"你好啊,我的朋友!"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> auth_basic_user_file <span class="hljs-string">"/usr/local/nginx/.user_auth_file"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>//检查nginx配置文件是否有误,并重读配置文件
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: the configuration file /usr/<span class="hljs-keyword">local</span>/nginx/conf/nginx.conf syntax is ok
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: configuration file /usr/<span class="hljs-keyword">local</span>/nginx/conf/nginx.conf test is successful
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>//可以访问默认网页
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[root@nginx nginx]<span class="hljs-comment"># curl 192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>Welcom to nginx!
</code-pre></div></div><div id="mCSB_29_scrollbar_vertical" class="mCSB_scrollTools mCSB_29_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_29_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 1148px; max-height: 1137.72px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_29_scrollbar_horizontal" class="mCSB_scrollTools mCSB_29_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_29_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>访问<code>192.168.110.10/test/</code> 输入用户名:eric 密码:123456</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035335036-741728461.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035335036-741728461.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>访问成功</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035339776-342176040.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035339776-342176040.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>访问默认首页不需要用户认证</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035343876-1184412202.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035343876-1184412202.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="用于server段-访问网站时需要用户认证" tid="tid-Rnw64K" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">用于server段: 访问网站时需要用户认证</span></b></h3></span>
<p><strong>注意:</strong> 只需要用户认证一次,就可以访问该网站所有资源</p>
<p><strong>访问网站需要用户认证</strong></p>
<code-box id="ZbBXsd" style="position: relative;display: block;"><button code-id="ZbBXsd" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-ZbBXsd" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-ZbBXsd" class="hljs csharp mCustomScrollbar _mCS_30 mCS-autoHide"><div id="mCSB_30" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_30_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-TT7hwt"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#编辑server字段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> listen <span class="hljs-number">80</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> server_name localhost;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> auth_basic <span class="hljs-string">"你好啊,我的朋友!"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> auth_basic_user_file <span class="hljs-string">"/usr/local/nginx/.user_auth_file"</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> location / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> root html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> index index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//检查nginx配置文件是否有误,并重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax <span class="hljs-keyword">is</span> ok
<code-line class="line-numbers-rows" style="display: inline;"></code-line>nginx: configuration file /usr/local/nginx/conf/nginx.conf test <span class="hljs-keyword">is</span> successful
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@nginx nginx</span>]<span class="hljs-meta"># nginx -s reload</span>
</code-pre></div></div><div id="mCSB_30_scrollbar_vertical" class="mCSB_scrollTools mCSB_30_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_30_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 457px; max-height: 446.688px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_30_scrollbar_horizontal" class="mCSB_scrollTools mCSB_30_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_30_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>访问默认首页,需要用户(eric)认证</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035350413-902384112.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035350413-902384112.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>访问成功</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035358964-1971778754.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035358964-1971778754.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>可以直接访问test目录下的网页</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035404374-1591676858.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035404374-1591676858.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="https配置" tid="tid-7fAWKk" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>12</i></b></span><b class="dev__developer"><span class="dev__title">https配置</span></b></h2></span>
<p>生成私钥,生成证书签署请求并获得证书,然后在nginx.conf中配置如下内容:</p>
<code-box id="DMt6Dz" style="position: relative;display: block;"><button code-id="DMt6Dz" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-DMt6Dz" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-DMt6Dz" class="hljs nginx mCustomScrollbar _mCS_31 mCS-autoHide"><div id="mCSB_31" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_31_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-3EMMWt"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-section">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">listen</span> <span class="hljs-number">443</span> ssl;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">server_name</span> www.xxxxx.com;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_certificate</span> /etc/nginx/ssl/nginx.crt;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_certificate_key</span> /etc/nginx/ssl/nginx.key;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_session_cache</span> shared:SSL:<span class="hljs-number">1m</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_session_timeout</span> <span class="hljs-number">5m</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_ciphers</span> HIGH:!aNULL:!MD5;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">ssl_prefer_server_ciphers</span> <span class="hljs-literal">on</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">location</span> / {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">root</span> html;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">index</span> index.html index.htm;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>}
</code-pre></div></div><div id="mCSB_31_scrollbar_vertical" class="mCSB_scrollTools mCSB_31_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_31_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_31_scrollbar_horizontal" class="mCSB_scrollTools mCSB_31_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_31_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="示例-2" tid="tid-zK3bXx" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">示例:</span></b></h3></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="生成一个免费证书" tid="tid-XBcnjb" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">生成一个免费证书</span></b></h3></span>
<p>一个免费证书网站:<a href="https://freessl.cn/login" target="_blank" rel="noopener nofollow">FreeSSL</a></p>
<p><strong>访问网站注册一个账号登录</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035456585-1005176832.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035456585-1005176832.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>在邮箱点击激活</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035425148-811840975.jpg"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035425148-811840975.jpg" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>输入信息,点击登录,完成手机验证即可</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035509132-1466976322.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035509132-1466976322.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>页面如下</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035455854-1567029016.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035455854-1567029016.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>申请证书</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035508195-811764957.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035508195-811764957.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035533308-277131624.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035533308-277131624.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035535755-549926828.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035535755-549926828.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>按如图提示步骤完成</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035521568-1823432109.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035521568-1823432109.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>下载完KeyManager后,点击KeyManager</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035532126-2031049279.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035532126-2031049279.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>创建证书</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035533054-845375591.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035533054-845375591.png" alt="image" loading="lazy" class="medium-zoom-image"></a><br>
<a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035537979-478485937.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035537979-478485937.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>导出证书</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035542643-843487447.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035542643-843487447.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035551368-1785749807.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601035551368-1785749807.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="导入证书开始配置" tid="tid-iC7SfF" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">导入证书,开始配置</span></b></h3></span>
<code-box id="PHEGNf" style="position: relative;display: block;"><button code-id="PHEGNf" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-PHEGNf" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-PHEGNf" class="hljs yaml mCustomScrollbar _mCS_32 mCS-autoHide"><div id="mCSB_32" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_32_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-pGJSjA"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//导入证书</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#当前位置</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># pwd</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">/usr/local/nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#创建ssl目录</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># mkdir ssl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># cd ssl/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#传到这个ssl目录下</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">ssl</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">leidazhuang-net-cn-nginx-0601030912.zip</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#解压证书文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">ssl</span>]<span class="hljs-comment"># yum -y install unzip</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">ssl</span>]<span class="hljs-comment"># unzip leidazhuang-net-cn-nginx-0601030912.zip </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">Archive:</span> <span class="hljs-string">leidazhuang-net-cn-nginx-0601030912.zip</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">inflating:</span> <span class="hljs-string">leidazhuang.net.cn_chain.crt</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">inflating:</span> <span class="hljs-string">leidazhuang.net.cn_key.key</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">ssl</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">leidazhuang.net.cn_chain.crt</span> <span class="hljs-string">leidazhuang-net-cn-nginx-0601030912.zip</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">leidazhuang.net.cn_key.key</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#返回上级目录</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">ssl</span>]<span class="hljs-comment"># cd ..</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#配置文件,取消注释,修改证书密钥路径</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-comment"># HTTPS server</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-comment">#</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">listen</span> <span class="hljs-number">443</span> <span class="hljs-string">ssl;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">server_name</span> <span class="hljs-string">leidazhuang.net.cn;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_certificate</span> <span class="hljs-string">/usr/local/nginx/ssl/leidazhuang.net.cn_chain.crt;</span> <span class="hljs-string">//修改此行</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_certificate_key</span> <span class="hljs-string">/usr/local/nginx/ssl/leidazhuang.net.cn_key.key;</span> <span class="hljs-string">//修改此行</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_session_cache</span> <span class="hljs-string">shared:SSL:1m;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_session_timeout</span> <span class="hljs-string">5m;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_ciphers</span> <span class="hljs-string">HIGH:!aNULL:!MD5;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">ssl_prefer_server_ciphers</span> <span class="hljs-string">on;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">location</span> <span class="hljs-string">/</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">root</span> <span class="hljs-string">html;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">index</span> <span class="hljs-string">index.html</span> <span class="hljs-string">index.htm;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//检查nginx配置文件是否有误,并重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx:</span> <span class="hljs-string">the</span> <span class="hljs-string">configuration</span> <span class="hljs-string">file</span> <span class="hljs-string">/usr/local/nginx/conf/nginx.conf</span> <span class="hljs-string">syntax</span> <span class="hljs-string">is</span> <span class="hljs-string">ok</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx:</span> <span class="hljs-string">configuration</span> <span class="hljs-string">file</span> <span class="hljs-string">/usr/local/nginx/conf/nginx.conf</span> <span class="hljs-string">test</span> <span class="hljs-string">is</span> <span class="hljs-string">successful</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//443端口已经启用了</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:443</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
</code-pre></div></div><div id="mCSB_32_scrollbar_vertical" class="mCSB_scrollTools mCSB_32_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_32_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 1660px; max-height: 1649.59px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_32_scrollbar_horizontal" class="mCSB_scrollTools mCSB_32_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_32_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="配置域名和ip映射关系" tid="tid-DAZ87c" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">配置域名和IP映射关系</span></b></h3></span>
<p><strong>在本机window上,把 <code>C:\Windows\System32\drivers\etc\hosts</code> 文件移动到桌面,修改完成后移动回去</strong></p>
<code-box id="iENbMe" style="position: relative;display: block;"><button code-id="iENbMe" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-iENbMe" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-iENbMe" class="hljs yaml mCustomScrollbar _mCS_33 mCS-autoHide"><div id="mCSB_33" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_33_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-8y6SZs"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//在桌面用记事本打开hosts文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#添加此行</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-string">www.leidazhuang.net.cn</span> <span class="hljs-string">leidazhuang.net.cn</span>
</code-pre></div></div><div id="mCSB_33_scrollbar_vertical" class="mCSB_scrollTools mCSB_33_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_33_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 73px; max-height: 62.7812px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_33_scrollbar_horizontal" class="mCSB_scrollTools mCSB_33_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_33_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="访问测试" tid="tid-bTYfzX" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">访问测试</span></b></h3></span>
<p>推荐 <code>Firefox</code> 火狐浏览器</p>
<p><strong>通过IP地址 <code>https://192.168.110.10</code> 访问</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105236571-1368899548.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105236571-1368899548.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>成功访问</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105228373-1601463430.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105228373-1601463430.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>通过域名 <code>https://leidazhuang.net.cn</code> 访问</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105222248-862164454.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105222248-862164454.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="开启状态界面" tid="tid-tB5GQx" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>6</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>13</i></b></span><b class="dev__developer"><span class="dev__title">开启状态界面</span></b></h2></span>
<p>开启status:</p>
<code-box id="5BH7kM" style="position: relative;display: block;"><button code-id="5BH7kM" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-5BH7kM" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-5BH7kM" class="hljs nginx mCustomScrollbar _mCS_34 mCS-autoHide"><div id="mCSB_34" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_34_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-jXNGrX"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attribute">location</span> /status {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-section">stub_status</span> {<span class="hljs-attribute">on</span> | <span class="hljs-literal">off</span>};
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">allow</span> ip;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attribute">deny</span> all;
<code-line class="line-numbers-rows" style="display: inline;"></code-line>}
</code-pre></div></div><div id="mCSB_34_scrollbar_vertical" class="mCSB_scrollTools mCSB_34_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_34_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 124px; max-height: 113.969px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_34_scrollbar_horizontal" class="mCSB_scrollTools mCSB_34_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_34_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p>访问状态页面的方式:<code>http://server_ip/status</code></p>
<p><strong>状态页面信息详解:</strong></p>
<div class="table-wrapper"><table>
<thead>
<tr>
<th style="text-align: center">状态码</th>
<th style="text-align: left">表示的意义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">Active connections 2</td>
<td style="text-align: left">当前所有处于打开状态的连接数</td>
</tr>
<tr>
<td style="text-align: center">accepts</td>
<td style="text-align: left">总共处理了多少个连接</td>
</tr>
<tr>
<td style="text-align: center">handled</td>
<td style="text-align: left">成功创建多少握手</td>
</tr>
<tr>
<td style="text-align: center">requests</td>
<td style="text-align: left">总共处理了多少个请求</td>
</tr>
<tr>
<td style="text-align: center">Reading</td>
<td style="text-align: left">nginx读取到客户端的Header信息数,表示正处于接收请求状态的连接数</td>
</tr>
<tr>
<td style="text-align: center">Writing</td>
<td style="text-align: left">nginx返回给客户端的Header信息数,表示请求已经接收完成, 且正处于处理请求或发送响应的过程中的连接数</td>
</tr>
<tr>
<td style="text-align: center">Waiting</td>
<td style="text-align: left">开启keep-alive的情况下,这个值等于active - (reading + writing), 意思就是Nginx已处理完正在等候下一次请求指令的驻留连接</td>
</tr>
</tbody>
</table></div>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="示例-3" tid="tid-QBxewX" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">示例:</span></b></h3></span>
<p><strong>开启status状态页面</strong></p>
<code-box id="YQAAmc" style="position: relative;display: block;"><button code-id="YQAAmc" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-YQAAmc" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-YQAAmc" class="hljs properties mCustomScrollbar _mCS_35 mCS-autoHide"><div id="mCSB_35" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_35_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-JfaaAf"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">[root@nginx</span> <span class="hljs-string">nginx]# vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#编辑location段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">server</span> <span class="hljs-string">{</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">listen</span> <span class="hljs-string">80;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">server_name</span> <span class="hljs-string">localhost;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">location</span> <span class="hljs-string">/ {</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">root</span> <span class="hljs-string">html;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">index</span> <span class="hljs-string">index.html index.htm;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">location</span> <span class="hljs-string">/status {</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">stub_status</span> <span class="hljs-string">on;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">allow</span> <span class="hljs-string">192.168.110.10; //允许192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">allow</span> <span class="hljs-string">192.168.110.1; //允许192.168.110.1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">deny</span> <span class="hljs-string">all;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-attr">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">//检查配置文件是否有误,并重读文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">[root@nginx</span> <span class="hljs-string">nginx]# nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx</span>: <span class="hljs-string">the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx</span>: <span class="hljs-string">configuration file /usr/local/nginx/conf/nginx.conf test is successful</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">[root@nginx</span> <span class="hljs-string">nginx]# nginx -s reload</span>
</code-pre></div></div><div id="mCSB_35_scrollbar_vertical" class="mCSB_scrollTools mCSB_35_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_35_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_35_scrollbar_horizontal" class="mCSB_scrollTools mCSB_35_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_35_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<p><strong>网页访问</strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105207271-291023711.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210601105207271-291023711.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h1" class="header__span" style="transform:scale(1.0);"><h1 id="案例" tid="tid-emDkCB" class="header__dev"><span style=""><b class="dev__fe"><i>7</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><b class="dev__developer"><span class="dev__title">案例</span></b></h1></span>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="案例一统计nginx访问ip次数" tid="tid-RT7rQS" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>7</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>1</i></b></span><b class="dev__developer"><span class="dev__title">案例一:统计nginx访问ip次数</span></b></h2></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="1-开启日志功能" tid="tid-NA3zJ4" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">1. 开启日志功能</span></b></h3></span>
<code-box id="BiJbbP" style="position: relative;display: block;"><button code-id="BiJbbP" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-BiJbbP" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-BiJbbP" class="hljs csharp mCustomScrollbar _mCS_36 mCS-autoHide"><div id="mCSB_36" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_36_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-6yWADw"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//编辑配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@localhost ~</span>]<span class="hljs-meta"># vim /usr/local/nginx/conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#打开日志功能</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>http {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> include mime.types;
<code-line class="line-numbers-rows" style="display: inline;"></code-line> default_type application/octet-stream;
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-meta">#取消以下4行的注释</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> log_format main <span class="hljs-string">'$remote_addr - $remote_user [$time_local] "$request" '</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">'$status $body_bytes_sent "$http_referer" '</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">'"$http_user_agent" "$http_x_forwarded_for"'</span>;
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> access_log logs/access.log main;
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">//重读配置文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-meta">root@localhost ~</span>]<span class="hljs-meta"># nginx -s reload</span>
</code-pre></div></div><div id="mCSB_36_scrollbar_vertical" class="mCSB_scrollTools mCSB_36_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_36_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 380px; max-height: 369.906px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_36_scrollbar_horizontal" class="mCSB_scrollTools mCSB_36_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_36_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="2-通过网页刷新访问终端命令curl-19216811010访问" tid="tid-EjXebp" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">2. 通过网页刷新访问,终端命令curl 192.168.110.10访问</span></b></h3></span>
<ul>
<li>网页5次</li>
<li>终端3次</li>
</ul>
<code-box id="Gk4B6k" style="position: relative;display: block;"><button code-id="Gk4B6k" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-Gk4B6k" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-Gk4B6k" class="hljs yaml mCustomScrollbar _mCS_37 mCS-autoHide"><div id="mCSB_37" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_37_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1819px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-aXDzNn"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//查看日志</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">logs</span>]<span class="hljs-comment"># tail -f access.log </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:04</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:05</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:05</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:05</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:06</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">304</span> <span class="hljs-number">0</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:14</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">200</span> <span class="hljs-number">612</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"curl/7.61.1"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:15</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">200</span> <span class="hljs-number">612</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"curl/7.61.1"</span> <span class="hljs-string">"-"</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-bullet">-</span> <span class="hljs-bullet">-</span> [<span class="hljs-number">30</span><span class="hljs-string">/May/2021:21:15:15</span> <span class="hljs-string">+0800</span>] <span class="hljs-string">"GET / HTTP/1.1"</span> <span class="hljs-number">200</span> <span class="hljs-number">612</span> <span class="hljs-string">"-"</span> <span class="hljs-string">"curl/7.61.1"</span> <span class="hljs-string">"-"</span>
</code-pre></div></div><div id="mCSB_37_scrollbar_vertical" class="mCSB_scrollTools mCSB_37_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_37_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 252px; max-height: 241.938px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_37_scrollbar_horizontal" class="mCSB_scrollTools mCSB_37_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_37_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 421px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="3-使用awk取出访问次数" tid="tid-XjRSYb" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">3. 使用awk取出访问次数</span></b></h3></span>
<code-box id="ARXWMp" style="position: relative;display: block;"><button code-id="ARXWMp" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-ARXWMp" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-ARXWMp" class="hljs yaml mCustomScrollbar _mCS_38 mCS-autoHide"><div id="mCSB_38" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_38_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-cYsGZR"><code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># awk '{ip[$1]++}END{for(c in ip) print c,ip[c]}' /usr/local/nginx/logs/access.log</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-number">5</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-number">3</span>
</code-pre></div></div><div id="mCSB_38_scrollbar_vertical" class="mCSB_scrollTools mCSB_38_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_38_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 73px; max-height: 62.7812px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_38_scrollbar_horizontal" class="mCSB_scrollTools mCSB_38_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_38_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="4-以第二列数值进行排序" tid="tid-Q7MxGT" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">4. 以第二列数值进行排序</span></b></h3></span>
<code-box id="2mHHcE" style="position: relative;display: block;"><button code-id="2mHHcE" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-2mHHcE" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-2mHHcE" class="hljs yaml mCustomScrollbar _mCS_39 mCS-autoHide"><div id="mCSB_39" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_39_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1059px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-fmaGrE"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#倒序</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># awk '{ip[$1]++}END{for(c in ip) print c,ip[c]}' /usr/local/nginx/logs/access.log|sort -rk 2</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-number">5</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-number">3</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#顺序</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># awk '{ip[$1]++}END{for(c in ip) print c,ip[c]}' /usr/local/nginx/logs/access.log|sort -k 2</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-number">3</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-number">5</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#排名前十访问次数 head</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@localhost</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># awk '{ip[$1]++}END{for(c in ip) print c,ip[c]}' /usr/local/nginx/logs/access.log|sort -rk 2|head</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span> <span class="hljs-number">5</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span> <span class="hljs-number">3</span>
</code-pre></div></div><div id="mCSB_39_scrollbar_vertical" class="mCSB_scrollTools mCSB_39_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_39_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 329px; max-height: 318.719px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_39_scrollbar_horizontal" class="mCSB_scrollTools mCSB_39_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_39_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 723px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h2" class="header__span" style="transform:scale(0.9);left: -37.00px;"><h2 id="案例二状态界面监控" tid="tid-bePMxE" class="header__dev"><span style="position: relative;left: -5px;"><b class="dev__fe"><i>7</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>2</i></b></span><b class="dev__developer"><span class="dev__title">案例二:状态界面监控</span></b></h2></span>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="环境说明" tid="tid-CYcJ8S" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">环境说明:</span></b></h3></span>
<div class="table-wrapper"><table>
<thead>
<tr>
<th>主机名称</th>
<th>IP地址</th>
<th>需要安装的应用</th>
<th>系统版本</th>
</tr>
</thead>
<tbody>
<tr>
<td>客户端:nginx</td>
<td>192.168.110.10</td>
<td>nginx zabbix_agent</td>
<td>redhat 8</td>
</tr>
<tr>
<td>服务端:zabbix</td>
<td>192.168.110.30</td>
<td>lamp架构 zabbix_server zabbix_agent</td>
<td>redhat 8</td>
</tr>
</tbody>
</table></div>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="准备工作" tid="tid-CWCfMh" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">准备工作:</span></b></h3></span>
<p>zabbix的<strong>服务端</strong>和<strong>客户端</strong>的部署详情请见:<a href="https://www.cnblogs.com/leixixi/p/14630300.html" target="_blank">zabbix服务端安装</a> + <a href="https://www.cnblogs.com/leixixi/p/14635559.html" target="_blank">zabbix客户端部署实例</a></p>
<code-box id="75b5As" style="position: relative;display: block;"><button code-id="75b5As" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-75b5As" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-75b5As" class="hljs lua mCustomScrollbar _mCS_40 mCS-autoHide"><div id="mCSB_40" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_40_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-JMp7pa"><code-line class="line-numbers-rows" style="display: inline;"></code-line>//关闭防火墙和selinux
<code-line class="line-numbers-rows" style="display: inline;"></code-line>systemctl disable <span class="hljs-comment">--now firewalld</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>setenforce <span class="hljs-number">0</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>sed -ri <span class="hljs-string">'s/^(SELINUX=).*/\1disabled/g'</span> /etc/selinux/<span class="hljs-built_in">config</span>
</code-pre></div></div><div id="mCSB_40_scrollbar_vertical" class="mCSB_scrollTools mCSB_40_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_40_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_40_scrollbar_horizontal" class="mCSB_scrollTools mCSB_40_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_40_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="开启状态界面-1" tid="tid-T3cDbw" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">开启状态界面</span></b></h3></span>
<code-box id="pSkHpa" style="position: relative;display: block;"><button code-id="pSkHpa" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-pSkHpa" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-pSkHpa" class="hljs yaml mCustomScrollbar _mCS_41 mCS-autoHide"><div id="mCSB_41" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_41_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-WGc6TC"><code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># pwd</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">/usr/local/nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># vim conf/nginx.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#编辑location段</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">server</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">listen</span> <span class="hljs-number">80</span><span class="hljs-string">;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">server_name</span> <span class="hljs-string">localhost;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">location</span> <span class="hljs-string">/</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">root</span> <span class="hljs-string">html;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">index</span> <span class="hljs-string">index.html</span> <span class="hljs-string">index.htm;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">location</span> <span class="hljs-string">/status</span> {
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">stub_status</span> <span class="hljs-string">on;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">allow</span> <span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.10</span><span class="hljs-string">;</span> <span class="hljs-string">//允许192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">allow</span> <span class="hljs-number">192.168</span><span class="hljs-number">.110</span><span class="hljs-number">.1</span><span class="hljs-string">;</span> <span class="hljs-string">//允许192.168.110.1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">deny</span> <span class="hljs-string">all;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> }
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//检查配置文件是否有误,并重读文件</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># nginx -t</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx:</span> <span class="hljs-string">the</span> <span class="hljs-string">configuration</span> <span class="hljs-string">file</span> <span class="hljs-string">/usr/local/nginx/conf/nginx.conf</span> <span class="hljs-string">syntax</span> <span class="hljs-string">is</span> <span class="hljs-string">ok</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">nginx:</span> <span class="hljs-string">configuration</span> <span class="hljs-string">file</span> <span class="hljs-string">/usr/local/nginx/conf/nginx.conf</span> <span class="hljs-string">test</span> <span class="hljs-string">is</span> <span class="hljs-string">successful</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># nginx -s reload</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//访问状态</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#成功访问</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">nginx</span>]<span class="hljs-comment"># curl 192.168.110.10/status/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">Active connections:</span> <span class="hljs-number">1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">server</span> <span class="hljs-string">accepts</span> <span class="hljs-string">handled</span> <span class="hljs-string">requests</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-number">10</span> <span class="hljs-number">10</span> <span class="hljs-number">9</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-attr">Reading: 0 Writing: 1 Waiting:</span> <span class="hljs-number">0</span>
</code-pre></div></div><div id="mCSB_41_scrollbar_vertical" class="mCSB_scrollTools mCSB_41_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_41_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_41_scrollbar_horizontal" class="mCSB_scrollTools mCSB_41_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_41_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="安装zabbix客户端" tid="tid-tXicZ2" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">安装zabbix客户端</span></b></h3></span>
<p><strong>nginx端主机安装zabbix_agent客户端服务</strong></p>
<code-box id="SCpkFB" style="position: relative;display: block;"><button code-id="SCpkFB" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-SCpkFB" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-SCpkFB" class="hljs yaml mCustomScrollbar _mCS_42 mCS-autoHide"><div id="mCSB_42" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_42_container" class="mCSB_container" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-8EWbSs"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//安装依赖包</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># yum -y install gcc gcc-c++ bzip2 pcre* make</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//下载zabbix安装包,并解压</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.6.tar.gz</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">anaconda-ks.cfg</span> <span class="hljs-string">zabbix-5.2.6.tar.gz</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># tar xf zabbix-5.2.6.tar.gz </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">anaconda-ks.cfg</span> <span class="hljs-string">zabbix-5.2.6</span> <span class="hljs-string">zabbix-5.2.6.tar.gz</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//安装zabbix</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># cd zabbix-5.2.6</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">zabbix-5.2.6</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">aclocal.m4</span> <span class="hljs-string">ChangeLog</span> <span class="hljs-string">config.sub</span> <span class="hljs-string">database</span> <span class="hljs-string">install-sh</span> <span class="hljs-string">man</span> <span class="hljs-string">README</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">AUTHORS</span> <span class="hljs-string">compile</span> <span class="hljs-string">configure</span> <span class="hljs-string">depcomp</span> <span class="hljs-string">m4</span> <span class="hljs-string">misc</span> <span class="hljs-string">sass</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">bin</span> <span class="hljs-string">conf</span> <span class="hljs-string">configure.ac</span> <span class="hljs-string">include</span> <span class="hljs-string">Makefile.am</span> <span class="hljs-string">missing</span> <span class="hljs-string">src</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">build</span> <span class="hljs-string">config.guess</span> <span class="hljs-string">COPYING</span> <span class="hljs-string">INSTALL</span> <span class="hljs-string">Makefile.in</span> <span class="hljs-string">NEWS</span> <span class="hljs-string">ui</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">zabbix-5.2.6</span>]<span class="hljs-comment"># ./configure --enable-agent --disable-dependency-tracking</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">***********************************************************</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">*</span> <span class="hljs-string">Now</span> <span class="hljs-string">run</span> <span class="hljs-string">'make install'</span> <span class="hljs-string">*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">*</span> <span class="hljs-string">*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">*</span> <span class="hljs-string">Thank</span> <span class="hljs-string">you</span> <span class="hljs-string">for</span> <span class="hljs-string">using</span> <span class="hljs-string">Zabbix!</span> <span class="hljs-string">*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">*</span> <span class="hljs-string"><http://www.zabbix.com></span> <span class="hljs-string">*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">***********************************************************</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">zabbix-5.2.6</span>]<span class="hljs-comment"># make install</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//修改主动模式和被动模式</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># cd /usr/local/etc/</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">etc</span>]<span class="hljs-comment"># ls</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">zabbix_agentd.conf</span> <span class="hljs-string">zabbix_agentd.conf.d</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">etc</span>]<span class="hljs-comment"># vim zabbix_agentd.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Mandatory: yes, if StartAgents is not explicitly set to 0</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Default:</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Server=</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">Server=192.168.110.30</span> <span class="hljs-string">//修改为服务端ip地址</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Mandatory: no</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Default:</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># ServerActive=</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">ServerActive=192.168.110.30</span> <span class="hljs-string">//修改为服务端ip地址</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Mandatory: no</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Default:</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># Hostname=</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">Hostname=nginx</span> <span class="hljs-string">//设置唯一主机名,后面在网页中配置需要一致</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//启动agent</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">etc</span>]<span class="hljs-comment"># useradd -r -M -s /sbin/nologin zabbix</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">etc</span>]<span class="hljs-comment"># zabbix_agentd </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@agent</span> <span class="hljs-string">etc</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:10050</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//重启nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#停止</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># nginx-s stop</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#启动</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># nginx</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#查看端口</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:443</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:10050</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
</code-pre></div></div><div id="mCSB_42_scrollbar_vertical" class="mCSB_scrollTools mCSB_42_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_42_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; display: block; height: 1916px; max-height: 1905.53px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_42_scrollbar_horizontal" class="mCSB_scrollTools mCSB_42_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_42_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="在被监控端nginx主机上编写监控脚本" tid="tid-ZW8BEc" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">在被监控端nginx主机上,编写监控脚本</span></b></h3></span>
<code-box id="nziWCs" style="position: relative;display: block;"><button code-id="nziWCs" type="button" class="clipboard code-copay-btn" data-clipboard-action="copy" data-clipboard-target="#pre-nziWCs" aria-label="复制代码" style="color: rgb(117, 113, 94);"><i class="iconfont icon-fuzhi1"></i></button><pre style="font-family: "Ubuntu Mono", monospace !important; font-size: 16px !important; position: relative; overflow: visible;" id="pre-nziWCs" class="hljs yaml mCustomScrollbar _mCS_43 mCS-autoHide"><div id="mCSB_43" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside" style="max-height: none;" tabindex="0"><div id="mCSB_43_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position: relative; top: 0px; left: 0px; width: 1000px;" dir="ltr"><code-pre class="code-pre code-pre-line" id="pre-7CZPeH"><code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//创建脚本目录</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># mkdir /scripts</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//修改属主属组为zabbix</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># cd /scripts</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">scripts</span>]<span class="hljs-comment"># chown zabbix.zabbix /scripts</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">scripts</span>]<span class="hljs-comment"># ll / | grep scripts</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">drwxr-xr-x</span> <span class="hljs-number">2</span> <span class="hljs-string">zabbix</span> <span class="hljs-string">zabbix</span> <span class="hljs-number">35</span> <span class="hljs-string">Jun</span> <span class="hljs-number">2</span> <span class="hljs-number">10</span><span class="hljs-string">:47</span> <span class="hljs-string">scripts</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//编写脚本</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">scripts</span>]<span class="hljs-comment"># vim check_nginx_status.sh </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#!/bin/bash</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#这里的变量名称可以自己定义,但是以下的配置需要和这个变量匹配</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#这里的IP地址是被监控端nginx的IP地址 192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">nginx_server=192.168.110.10</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">requests(){</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">requests=`curl</span> <span class="hljs-string">-s</span> <span class="hljs-string">http://${nginx_server}/status</span> <span class="hljs-string">|</span> <span class="hljs-string">awk</span> <span class="hljs-string">'NR==3{print $3}'</span><span class="hljs-string">`</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">echo</span> <span class="hljs-string">${requests}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">Reading(){</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Reading=`curl</span> <span class="hljs-string">-s</span> <span class="hljs-string">http://${nginx_server}/status</span> <span class="hljs-string">|</span> <span class="hljs-string">awk</span> <span class="hljs-string">'NR==4{print $2}'</span><span class="hljs-string">`</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">echo</span> <span class="hljs-string">${Reading}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">Writing(){</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Writing=`curl</span> <span class="hljs-string">-s</span> <span class="hljs-string">http://${nginx_server}/status</span> <span class="hljs-string">|</span> <span class="hljs-string">awk</span> <span class="hljs-string">'NR==4{print $4}'</span><span class="hljs-string">`</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">echo</span> <span class="hljs-string">${Writing}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">Waiting(){</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Waiting=`curl</span> <span class="hljs-string">-s</span> <span class="hljs-string">http://${nginx_server}/status</span> <span class="hljs-string">|</span> <span class="hljs-string">awk</span> <span class="hljs-string">'NR==4{print $6}'</span><span class="hljs-string">`</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">echo</span> <span class="hljs-string">${Waiting}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">main(){</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">case</span> <span class="hljs-string">$1</span> <span class="hljs-string">in</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">requests)</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">requests;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">;;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Reading)</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Reading;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">;;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Writing)</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Writing;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">;;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Waiting)</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">Waiting;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">;;</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line> <span class="hljs-string">esac</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">}</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">main</span> <span class="hljs-string">$1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//给脚本执行权限</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">scripts</span>]<span class="hljs-comment"># chmod +x check_nginx_status.sh</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">scripts</span>]<span class="hljs-comment"># ll</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">total</span> <span class="hljs-number">4</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">-rwxr-xr-x</span> <span class="hljs-number">1</span> <span class="hljs-string">root</span> <span class="hljs-string">root</span> <span class="hljs-number">736</span> <span class="hljs-string">Jun</span> <span class="hljs-number">2</span> <span class="hljs-number">10</span><span class="hljs-string">:46</span> <span class="hljs-string">check_nginx_status.sh</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//开启自定义监控并添加指标</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#编辑配置文件 /usr/local/etc/zabbix_agentd.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># vim /usr/local/etc/zabbix_agentd.conf</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">...此处省略n行...</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment"># TLSCipherAll=</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#在配置文件最后,添加以下两行</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">UnsafeUserParameters=1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">UserParameter=check_nginx_status[*],/scripts/check_nginx_status.sh</span> <span class="hljs-string">$1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//重启zabbix</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:443</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:10050</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># pkill zabbix_agent</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:443</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># zabbix_agentd </span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@nginx</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># ss -antl</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">State</span> <span class="hljs-string">Recv-Q</span> <span class="hljs-string">Send-Q</span> <span class="hljs-string">Local</span> <span class="hljs-string">Address:Port</span> <span class="hljs-string">Peer</span> <span class="hljs-string">Address:Port</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:22</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:443</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:10050</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:80</span> <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">LISTEN</span> <span class="hljs-number">0</span> <span class="hljs-number">128</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:22</span> [<span class="hljs-string">::</span>]<span class="hljs-string">:*</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-string">//在zabbix服务端测试</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-comment">#测试是否可以获取客户端的指标</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@zabbix</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># zabbix_get -s 192.168.110.10 -k check_nginx_status['requests']</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">16</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@zabbix</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># zabbix_get -s 192.168.110.10 -k check_nginx_status['Reading']</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">0</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@zabbix</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># zabbix_get -s 192.168.110.10 -k check_nginx_status['Writing']</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">1</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line>[<span class="hljs-string">root@zabbix</span> <span class="hljs-string">~</span>]<span class="hljs-comment"># zabbix_get -s 192.168.110.10 -k check_nginx_status['Waiting']</span>
<code-line class="line-numbers-rows" style="display: inline;"></code-line><span class="hljs-number">0</span>
</code-pre></div></div><div id="mCSB_43_scrollbar_vertical" class="mCSB_scrollTools mCSB_43_scrollbar mCS-minimal-dark mCSB_scrollTools_vertical" style="display: none;"><div class="mCSB_draggerContainer"><div id="mCSB_43_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 50px; height: 0px; top: 0px;"><div class="mCSB_dragger_bar" style="line-height: 50px; background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div><div id="mCSB_43_scrollbar_horizontal" class="mCSB_scrollTools mCSB_43_scrollbar mCS-minimal-dark mCSB_scrollTools_horizontal" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_43_dragger_horizontal" class="mCSB_dragger" style="position: absolute; min-width: 50px; display: block; width: 765px; max-width: 862.75px; left: 0px;"><div class="mCSB_dragger_bar" style="background-color: rgb(117, 113, 94);"></div></div><div class="mCSB_draggerRail"></div></div></div></pre></code-box>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="网页配置" tid="tid-AsxaAQ" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">网页配置</span></b></h3></span>
<p><strong>访问 <code>192.168.110.30 开始配置</code></strong></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224146759-2122226343.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224146759-2122226343.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>添加主机组</strong></p>
<p>Configuration —— Host groups —— 右上角 Create host group</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224157785-1791077795.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224157785-1791077795.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>添加主机</strong></p>
<p>Configuration —— Hosts —— 右上角 Create host</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224204571-732429959.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224204571-732429959.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>添加监控项</strong></p>
<p>Configuration --- Hosts --- 客户机的Items --- 右上角Create Items</p>
<ol>
<li>添加第一个监控项:<strong><code>requests</code></strong></li>
</ol>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224209451-2028944008.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224209451-2028944008.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<ol start="2">
<li>添加第二个监控项:<strong><code>Reading</code></strong></li>
</ol>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224214940-673653381.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224214940-673653381.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<ol start="3">
<li>添加第三个监控项:<strong><code>Writing</code></strong></li>
</ol>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224221333-435939401.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224221333-435939401.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<ol start="4">
<li>添加第四个监控项:<strong><code>Waiting</code></strong></li>
</ol>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224227483-1409971965.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224227483-1409971965.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<ol start="5">
<li>添加成功</li>
</ol>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224232943-32444222.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224232943-32444222.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><strong>添加自定义图表</strong></p>
<p>Configuration --- Hosts --- 客户机的Graphs --- 右上角Create graph</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224240926-513441511.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224240926-513441511.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="在screens上添加图表方便监控" tid="tid-tFCQmh" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">在Screens上添加图表方便监控</span></b></h3></span>
<p>Monitoring --- Screens --- 右上角Create creens</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224248176-1616885834.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224248176-1616885834.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p>创建成功</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224254576-347538768.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224254576-347538768.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p>nginx_status --- 右上角Edit screen</p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224301717-28103606.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224301717-28103606.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224311108-1855724772.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224311108-1855724772.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<span title-type="h3" class="header__span" style="transform:scale(0.8);left: -74.00px;"><h3 id="成功查看状态页面" tid="tid-aY2f4W" class="header__dev"><span style="visibility: hidden;"><b class="dev__fe"><i>1</i></b><span class="dev__slash">|</span><b class="dev__ux"><i>0</i></b></span><span class="iconfont icon-weibiaoti22 titleIcon" style="left: 32.00px;"></span><b class="dev__developer"><span class="dev__title">成功查看状态页面</span></b></h3></span>
<p><a data-fancybox="gallery" href="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224312517-905879414.png"><img src="https://img2020.cnblogs.com/blog/2215668/202106/2215668-20210602224312517-905879414.png" alt="image" loading="lazy" class="medium-zoom-image"></a></p>
<br><p class="essaySuffix-eof">__EOF__</p><div class="essaySuffix-box"><div class="essaySuffix-box-left"><img src="https://pic.cnblogs.com/avatar/2215668/20201125161225.png" alt=""></div><div class="essaySuffix-box-right"><span class="essaySuffix-right-title">本文作者</span>:<strong><span style="font-size: 12px;"><a href="https://www.cnblogs.com/leixixi/p/14811640.html" target="_blank">Lei AOAO 我爱吃板栗~</a></span></strong> <br><span style="font-weight: bold; white-space:nowrap;">本文链接</span>:<a href="https://www.cnblogs.com/leixixi/p/14811640.html" target="_blank">https://www.cnblogs.com/leixixi/p/14811640.html</a><br><span class="essaySuffix-right-title">关于博主</span>:努力学习Linux的小萌新,希望从今天开始慢慢提高,一步步走向技术的高峰!<br><span class="essaySuffix-right-title">版权声明</span>:本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-nd/4.0/" alt="BY-NC-SA" title="BY-NC-SA" target="_blank">BY-NC-SA</a> 许可协议。转载请注明出处!<br><span class="essaySuffix-right-title">声援博主</span>:如果您觉得文章对您有帮助,可以点击文章右下角<strong><span style="color: #ff0000; font-size: 12pt;">【<a id="post-up" onclick="votePost(14811640,'Digg')" href="javascript:void(0);">推荐</a>】</span></strong>一下。您的鼓励是博主的最大动力!<br></div><div style="clear: both;"></div></div></div>
<div class="clear"></div>
<div id="blog_post_info_block" role="contentinfo">
<div id="blog_post_info">
<div id="green_channel">
<a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(14811640,cb_blogId,1);green_channel_success(this,'谢谢推荐!');">好文要顶</a>
<a id="green_channel_follow" onclick="follow('6fec7a78-2ae1-4245-1e8e-08d886dbd26e');" href="javascript:void(0);">关注我</a>
<a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
<a id="green_channel_wechat" href="javascript:void(0);" onclick="shareManager.wechatShare()">微信分享</a>
</div>
<div id="author_profile">
<div id="author_profile_info" class="author_profile_info">
<a href="https://home.cnblogs.com/u/leixixi/" target="_blank"><img src="https://pic.cnblogs.com/face/2215668/20201125161225.png" class="author_avatar" alt=""></a>
<div id="author_profile_detail" class="author_profile_info">
<a href="https://home.cnblogs.com/u/leixixi/">我爱吃板栗~</a>
<br>
<a href="https://home.cnblogs.com/u/leixixi/followers/">粉丝 - <span class="follower-count">21</span></a>
<a href="https://home.cnblogs.com/u/leixixi/followees/">关注 - <span class="following-count">7</span></a><br>
</div>
</div>
<div class="clear"></div>
<div id="author_profile_honor"></div>
<div id="author_profile_follow" class="follow-tip">
<a href="javascript:void(0);" onclick="follow('6fec7a78-2ae1-4245-1e8e-08d886dbd26e');return false;">+加关注</a>
</div>
</div>
<div id="div_digg">
<div class="diggit" onclick="votePost(14811640,'Digg')">
<span class="diggnum" id="digg_count">0</span>
</div>
<div class="buryit" onclick="votePost(14811640,'Bury')">
<span class="burynum" id="bury_count">0</span>
</div>
<div class="clear"></div>
<div class="diggword" id="digg_tips">
</div>
</div>
<script type="text/javascript">
currentDiggType = 0;
</script>
</div>
<div class="clear"></div>
<div id="post_next_prev">
<a href="https://www.cnblogs.com/leixixi/p/14802936.html" class="p_n_p_prefix">« </a> 上一篇: <a href="https://www.cnblogs.com/leixixi/p/14802936.html" data-featured-image="" title="发布于 2021-05-24 08:59">KVM虚拟化</a>
<br>
<a href="https://www.cnblogs.com/leixixi/p/14829274.html" class="p_n_p_prefix">» </a> 下一篇: <a href="https://www.cnblogs.com/leixixi/p/14829274.html" data-featured-image="" title="发布于 2021-05-30 21:49">平滑升级(适用于所有的编译安装软件)</a>
</div>
</div>
</div>
<div class="postDesc" style="display: block;">posted @
<span id="post-date" data-last-update-days="1303.6570781504793" data-date-created="BlogServer.Application.Dto.BlogPost.BlogPostDto" data-date-updated="2021-06-02 22:43" aria-expanded="false">2021-05-25 08:59</span>
<a href="https://www.cnblogs.com/leixixi">我爱吃板栗~</a>
阅读(<span id="post_view_count">160</span>)
评论(<span id="post_comment_count">0</span>)
<a href="https://i.cnblogs.com/EditPosts.aspx?postid=14811640" rel="nofollow">编辑</a>
<a href="javascript:void(0)" onclick="AddToWz(14811640);return false;">收藏</a>
<a href="javascript:void(0)" onclick="reportManager.report({ currentUserId: '7c8b9a15-8785-4741-914c-08d72b81cf93', targetType: 'blogPost', targetId: '14811640', targetLink: 'https://www.cnblogs.com/leixixi/p/14811640.html', title: 'nginx' })">举报</a>
</div>
</div>
</div><!--end: topics 文章、评论容器-->
</div>
<script>
var cb_entryId = 14811640, cb_entryCreatedDate = '2021-05-25 08:59', cb_postType = 1, cb_postTitle = 'nginx';
var allowComments = true, cb_blogId = 648886, cb_blogApp = 'leixixi', cb_blogUserGuid = '6fec7a78-2ae1-4245-1e8e-08d886dbd26e';
mermaidRender.render()
markdown_highlight()
zoomManager.apply("#cnblogs_post_body img:not(.code_img_closed):not(.code_img_opened)");
</script>
<a id="!comments"></a>
<div id="blog-comments-placeholder"></div>
<div id="comment_form" class="commentform">
<a name="commentform"></a>
<div id="divCommentShow"></div>
<div id="comment_nav">
<div class="comment-nav-right">
<span id="span_refresh_tips"></span><a href="javascript:void(0);" onclick="return RefreshCommentList();" id="lnk_RefreshComments" runat="server" clientidmode="Static">刷新评论</a><a href="#" onclick="return RefreshPage();">刷新页面</a><a href="#top">返回顶部</a>
</div>
</div>
<div id="comment_form_container"><script type="text/javascript" src="https://mention.cnblogs.com/bundles/mention.min.js"></script>
<div id="commentform_title">
<label>发表评论</label>
<a href="https://cnblogs.vip/" target="_blank" style="margin-left:20px">升级成为园子VIP会员</a>
</div>
<span id="tip_comment" style="color:Red"></span>
<div class="commentbox_main comment_textarea">
<div class="commentbox_title">
<div class="commentbox_title_left">
<span id="btn_edit_comment" class="commentbox_tab active" title="编辑评论">编辑</span>
<span id="btn_preview_comment" class="commentbox_tab" title="Markdown 预览">预览</span>
</div>
<div class="commentbox_title_right">
<span id="ubb_bold" class="comment_icon" alt="粗体" title="添加粗体(Ctrl + B)">
<svg class="comment_svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd">
<path d="m13.221 19c1.4414 0 2.5793-0.27451 3.3759-0.82353 0.92931-0.66667 1.4034-1.7059 1.4034-3.1176 0-0.94118-0.22759-1.7059-0.66379-2.2549-0.45517-0.56863-1.119-0.94118-2.0103-1.1176 0.68276-0.27451 1.1948-0.64706 1.5552-1.1569 0.36034-0.54902 0.55-1.2157 0.55-2 0-1.0588-0.36034-1.902-1.0621-2.5294-0.75862-0.66667-1.8207-1-3.1672-1h-6.2017v14h6.2207zm-0.82196-8h-3.3987v-4h3.4367c0.91139 0 1.557 0.15686 1.9747 0.47059 0.37975 0.29412 0.58861 0.78431 0.58861 1.451 0 0.72549-0.20886 1.2549-0.58861 1.5882-0.39873 0.31373-1.0633 0.4902-2.0127 0.4902zm0.52612 6h-3.9249v-4h3.9855c1.052 0 1.8208 0.16216 2.3064 0.48649 0.46532 0.32432 0.70809 0.84685 0.70809 1.5856 0 0.72072-0.3237 1.2252-0.9711 1.5495-0.50578 0.25225-1.2139 0.37838-2.104 0.37838z" fill-rule="nonzero" stroke-width=".35"></path>
</g>
</svg>
</span>
<span id="ubb_url" class="comment_icon" title="添加链接(Ctrl + K)" alt="链接">
<svg class="comment_svg comment_svg_stroke" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd">
<g transform="translate(4 4)" fill-rule="nonzero" stroke-width=".4">
<path d="m6.304 9.696c-0.288-0.288-0.512-0.608-0.704-0.992-0.16-0.32-0.032-0.704 0.288-0.864 0.32-0.16 0.704-0.032 0.864 0.288 0.128 0.224 0.256 0.448 0.448 0.64 0.928 0.928 2.432 0.928 3.36 0l3.36-3.328c0.928-0.928 0.928-2.432 0-3.36s-2.432-0.928-3.36 0l-2.272 2.272c-0.256 0.256-0.64 0.256-0.896 0-0.256-0.256-0.256-0.64 0-0.896l2.272-2.272c1.44-1.44 3.744-1.44 5.184 0 1.44 1.44 1.44 3.744 0 5.184l-3.36 3.296c-0.704 0.704-1.632 1.088-2.592 1.088-0.928 0-1.856-0.352-2.592-1.056z"></path>
<path d="m3.776 15.808c-0.992 0-1.888-0.384-2.592-1.056-1.44-1.44-1.44-3.744 0-5.184l3.328-3.328c1.44-1.44 3.744-1.44 5.184 0 0.288 0.288 0.544 0.64 0.736 1.024 0.16 0.32 0 0.704-0.32 0.864-0.32 0.16-0.704 0-0.864-0.32-0.128-0.256-0.288-0.48-0.48-0.672-0.928-0.928-2.432-0.928-3.36 0l-3.296 3.328c-0.928 0.928-0.928 2.432 0 3.36 0.448 0.448 1.056 0.704 1.664 0.704 0.608 0 1.248-0.256 1.664-0.704l2.112-2.112c0.256-0.256 0.64-0.256 0.896 0s0.256 0.64 0 0.896l-2.112 2.112c-0.672 0.704-1.568 1.088-2.56 1.088z"></path>
</g>
</g>
</svg>
</span>
<span id="ubb_code" class="comment_icon" title="添加代码(Ctrl + `)" alt="代码">
<svg class="comment_svg comment_svg_stroke" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd">
<g transform="translate(16 6)" stroke-linecap="round" stroke-width="2">
<line x1=".5" x2="4.5" y1=".7" y2="6.3"></line>
<line transform="translate(2.5 9.1) scale(1 -1) translate(-2.5 -9.1)" x1=".5" x2="4.5" y1="6.3" y2="11.9"></line>
</g>
<g transform="translate(3 6.1)" stroke-linecap="round" stroke-width="2">
<line transform="translate(2.5 3.5) scale(-1 1) translate(-2.5 -3.5)" x1=".5" x2="4.5" y1=".7" y2="6.3"></line>
<line transform="translate(2.5 9.1) scale(-1) translate(-2.5 -9.1)" x1=".5" x2="4.5" y1="6.3" y2="11.9"></line>
</g>
<path transform="translate(12 12.5) scale(1 -1) translate(-12 -12.5)" d="m10.778 7.1249c0.50008-0.11366 0.9978 0.16911 1.1643 0.64128l0.032406 0.11223 2 8.8c0.1224 0.53855-0.21496 1.0744-0.75351 1.1968-0.50008 0.11366-0.9978-0.16911-1.1643-0.64128l-0.032406-0.11223-2-8.8c-0.1224-0.53855 0.21496-1.0744 0.75351-1.1968z" fill-rule="nonzero" stroke-width=".25"></path>
</g>
</svg>
</span>
<span id="ubb_quote" class="comment_icon" title="添加引用(Ctrl + Q)" alt="引用">
<svg class="comment_svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd">
<g transform="translate(5 4)" fill-rule="nonzero" stroke-width=".25">
<path d="m5.0013 15v-5.2702h-2.8008c-0.13413-3.3762 1.2004-6.2143 4.0009-8.5135l-1.2-1.2163c-3.335 2.2996-5.0013 5.8119-5.0013 10.54v4.4595h5.0013-1.285e-5zm8.7987 0v-5.2702h-2.8008c-0.13453-3.3762 1.2-6.2143 4.0009-8.5135l-1.2-1.2163c-3.335 2.2996-5.0013 5.8119-5.0013 10.54v4.4595h5.0013-1.28e-5z"></path>
</g>
</g>
</svg>
</span>
<span id="ubb_img" class="comment_icon" alt="图片" title="上传图片(Ctrl + I)">
<svg class="comment_svg" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd">
<g transform="translate(3 3.8)" fill-rule="nonzero">
<path d="m14.1 0.58235h-11.2c-1.32 0-2.4 1.0482-2.4 2.3294v10.871c0 1.2812 1.08 2.3294 2.4 2.3294h11.2c1.32 0 2.4-1.0482 2.4-2.3294v-10.871c0-1.2812-1.08-2.3294-2.4-2.3294zm0.7 13.569-3.63-3.4165 1.33-1.2909c0.21-0.20382 0.59-0.20382 0.8 0l1.6 1.5529v2.7856c0 0.13588-0.04 0.26206-0.1 0.36882zm-11.9-12.016h11.2c0.44 0 0.8 0.34941 0.8 0.77647v5.8915l-0.47-0.45618c-0.84-0.825-2.22-0.825-3.07 0l-1.35 1.3103-2.39-2.2421c-0.85-0.825-2.22-0.825-3.05-0.019412l-2.48 2.2615v-6.7456c0.01-0.42706 0.37-0.77647 0.81-0.77647zm-0.8 11.647v-1.9897l3.6-3.2806c0.21-0.20382 0.58-0.21353 0.81 0.0097059l6.43 6.0371h-10.04c-0.44 0-0.8-0.33971-0.8-0.77647z"></path>
<ellipse cx="10.5" cy="6.4059" rx="1" ry="1"></ellipse>
</g>
</g>
</svg>
</span>
</div>
</div>
<div style="display:none">
<span id="comment_edit_id"></span>
<span id="span_parentcomment_id"></span>
<span id="span_parent_id"></span>
<span id="span_comment_replyto"></span>
<span id="span_comment_posted"></span>
<span id="span_current_user_id">7c8b9a15-8785-4741-914c-08d72b81cf93</span>
</div>
<textarea id="tbCommentBody" placeholder="支持 Markdown"></textarea>
<div id="tbCommentBodyPreview" class="feedbackCon" style="display: none">
<div id="tbCommentBodyPreviewBody" class="blog_comment_body comment_preview cnblogs-markdown"></div>
</div>
<div class="commentbox_footer">
<span> </span>
<span href="javascript:void(0)" id="ubb_auto_completion" class="comment_option">
<svg style="display: none" id="comment_auto_completion_on" viewBox="0 0 1080 1080" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M406.724 908.504c-89.02 0-157.885-32.319-206.594-96.957-49.549-64.639-73.903-155.795-73.903-274.299 0-116.017 24.354-206.345 73.903-270.155 48.71-63.81 117.574-95.3 206.594-95.3h19.316l-7.559 72.925h-3.359c-65.505 0-115.054 25.69-150.326 77.069-35.272 50.55-52.908 122.647-52.908 215.461 0 94.472 17.636 168.226 52.908 220.434 35.272 51.379 84.82 77.897 150.326 77.897h3.36l7.558 72.925h-19.316zm266.548 0c89.02 0 157.885-32.319 206.594-96.957 49.55-64.639 73.904-155.795 73.904-274.299 0-116.017-24.355-206.345-73.904-270.155-48.709-63.81-117.573-95.3-206.594-95.3h-19.315l7.558 72.925h3.36c65.505 0 115.054 25.69 150.326 77.069 35.272 50.55 52.908 122.647 52.908 215.461 0 94.472-17.636 168.226-52.908 220.434-35.272 51.379-84.821 77.897-150.327 77.897h-3.359l-7.558 72.925h19.315zm-94.068-65.897c0 31.514.854 54.433 1.708 68.758 1.709 14.325 3.417 25.784 6.835 34.38 2.563 8.594 6.834 14.324 12.814 20.054 5.126 5.73 14.523 11.46 27.337 17.189v34.38H451.914v-34.38c17.086-7.162 29.046-15.757 35.026-24.352 5.126-10.027 9.398-22.92 11.106-38.676 1.709-17.19 2.563-42.974 2.563-77.353V238.109c0-32.947-.854-55.866-1.709-71.623-1.708-14.325-4.271-25.784-6.834-32.947-3.417-8.595-7.689-15.757-12.814-20.054-5.126-5.73-14.523-10.027-27.338-17.19V61.916h175.984v34.38c-11.96 5.73-21.357 11.459-26.483 15.756-5.125 5.73-9.397 11.46-12.814 20.055-3.417 7.162-5.98 18.622-6.834 34.379-1.709 15.757-2.563 38.676-2.563 71.623v604.498z" fill-rule="nonzero"></path></svg>
<svg id="comment_auto_completion_off" viewBox="0 0 1080 1080" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M242.96 223.172l59.627 58.009c-14.277 10.773-26.874 24.032-37.791 40.606-35.272 50.55-52.908 122.647-52.908 215.461 0 94.472 17.636 168.226 52.908 220.434 35.272 51.379 84.82 77.897 150.326 77.897h3.36l7.558 72.925h-19.316c-89.02 0-157.885-32.319-206.594-96.957-49.549-64.639-73.903-155.795-73.903-274.299 0-116.017 24.354-206.345 73.903-270.155 12.597-16.574 26.874-31.49 42.83-43.921zm36.952-23.204c36.112-19.06 78.943-28.175 126.812-28.175h19.316l-7.559 72.925h-3.359c-27.714 0-52.908 4.144-74.743 14.088l-60.467-58.838zM805.123 770.94l60.466 58.01c-47.869 53.036-111.695 79.554-192.317 79.554h-19.315l7.558-72.925h3.36c59.626 0 105.816-21.546 140.248-64.638zm23.515-37.29c26.034-49.723 39.47-115.19 39.47-196.402 0-92.814-17.635-164.91-52.907-215.461-35.272-51.38-84.821-77.069-150.327-77.069h-3.359l-7.558-72.925h19.315c89.02 0 157.885 31.49 206.594 95.3 49.55 63.81 73.904 154.138 73.904 270.155 0 108.56-20.996 194.744-62.146 257.725l-62.986-61.324zM500.609 474.465l78.595 75.92v292.222c0 31.514.854 54.433 1.708 68.758 1.709 14.325 3.417 25.784 6.835 34.38 2.563 8.594 6.834 14.324 12.814 20.054 5.126 5.73 14.523 11.46 27.337 17.189v34.38H451.914v-34.38c17.086-7.162 29.046-15.757 35.026-24.352 5.126-10.027 9.398-22.92 11.106-38.676 1.709-17.19 2.563-42.974 2.563-77.353V474.465zm0-60.164V238.11c0-32.947-.854-55.866-1.709-71.623-1.708-14.325-4.271-25.784-6.834-32.947-3.417-8.595-7.689-15.757-12.814-20.054-5.126-5.73-14.523-10.027-27.338-17.19v-34.38h175.984v34.38c-11.96 5.73-21.357 11.459-26.483 15.756-5.125 5.73-9.397 11.46-12.814 20.055-3.417 7.162-5.98 18.622-6.834 34.379-1.709 15.757-2.563 38.676-2.563 71.623v253.545l-78.595-77.353z"></path><path d="M153.103 132.024l805.45 783.706-44.277 45.505-805.45-783.706z"></path></svg>
<span class="inline_middle">自动补全</span>
</span>
</div>
</div>
<p id="commentbox_opt">
<input id="btn_comment_submit" type="button" class="comment_btn" title="提交评论(Ctrl + Enter)" value="提交评论">
<span id="span_comment_canceledit" style="display:none"><a href="javascript:void(0);" onclick="return CancelCommentEdit()">不改了</a></span>
<a href="javascript:void(0);" onclick="return account.logout();">退出</a>
<a id="commentbox_opt_sub" href="javascript:void(0);" title="订阅后有新评论时会邮件通知您" onclick="commentManager.Subscribe()">订阅评论</a>
<a href="//www.cnblogs.com/wangwana/" target="_blank">我的博客</a>
</p>
<div id="tip_comment2" style="color:Red"></div>
<p>[Ctrl+Enter快捷键提交]</p>
<script>var commentEditor = initCommentEditor("tbCommentBody");</script>
</div>
<div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
<div id="cnblogs_ch"><a href="https://www.marscode.cn/?utm_source=advertising&utm_medium=cnblogs.com_ug_cpa&utm_term=hw_marscode_cnblogs&utm_content=home" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-字节-MarsCode'})">【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手</a><br><a href="https://click.ctyun.cn/?track=source_bokeyuan-medium_cps-content_se1271593" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-天翼云'})">【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年</a><br><a href="https://www.cnblogs.com/cmt/p/18602119" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-博客园-联合会员'})">【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员</a><br><a href="https://www.doubao.com/?channel=cnblogs&source=hw_db_cnblogs" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-抖音-豆包'})">【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数</a><br><a href="http://ishell.cc/" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-IShell'})">【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步</a><br></div>
<div id="opt_under_post"></div>
<div id="blog_c1" class="under-post-card">
<a href="https://www.doubao.com?channel=cnblogs&source=hw_db_cnblogs" rel="nofollow" target="_blank" onclick="countCreativeClicks('C1-字节-豆包')">
<img src="https://img2024.cnblogs.com/blog/35695/202412/35695-20241201072501456-2052907165.jpg" onload="countCreativeImpressions('C1-字节-豆包')" alt="">
<span id="c1_impression" style="display:none"></span>
</a>
</div>
<div id="under_post_card1"><div class="under-post-card">
<b>编辑推荐:</b>
<br>
· <a href="https://www.cnblogs.com/longfurcat/p/18628631" target="_blank">Kafka 的“无锁哲学”:高效消息流动的背后</a>
<br>
· <a href="https://www.cnblogs.com/binlovetech/p/18629491" target="_blank">时间轮在 Netty , Kafka 中的设计与实现</a>
<br>
· <a href="https://www.cnblogs.com/ivictor/p/18622997" target="_blank">MySQL 优化利器 SHOW PROFILE 的实现原理</a>
<br>
· <a href="https://www.cnblogs.com/Tangtang1997/p/18623843" target="_blank">在.NET Core中使用异步多线程高效率的处理大量数据</a>
<br>
· <a href="https://www.cnblogs.com/huangxincheng/p/18622015" target="_blank">聊一聊 C#前台线程 如何阻塞程序退出</a>
<br>
</div></div>
<div id="cnblogs_c2" class="under-post-card">
<a href="https://www.cnblogs.com/cmt/p/18457617" rel="nofollow" target="_blank" onclick="countCreativeClicks('C2-杭云-华为云代理')">
<img src="https://img2024.cnblogs.com/blog/35695/202412/35695-20241204084802346-1766467536.jpg" alt="" onload="countCreativeImpressions('C2-杭云-华为云代理')">
</a>
</div>
<div id="under_post_card2"><div class="itnews under-post-card">
<b>阅读排行:</b>
<br>
· <a href="https://www.cnblogs.com/Can-daydayup/p/18631410" target="_blank">3款.NET开源、功能强大的通讯调试工具,效率提升利器!</a>
<br>
· <a href="https://www.cnblogs.com/tangshiye/p/18632826" target="_blank">用 Cursor 写出第一个程序</a>
<br>
· <a href="https://www.cnblogs.com/kybs0/p/18622095" target="_blank">如何做好技术经理</a>
<br>
· <a href="https://www.cnblogs.com/longfurcat/p/18628631" target="_blank">【杂谈】Kafka 的“无锁哲学”:高效消息流动的背后</a>
<br>
· <a href="https://www.cnblogs.com/chingho/p/18632352" target="_blank">盘点5个常用的.Net依赖注入框架!</a>
<br>
</div></div>
<div id="HistoryToday" class="under-post-card"></div>
<script type="text/javascript">
var commentManager = new blogCommentManager();
commentManager.renderComments(0);
fixPostBody();
window.footnoteTipManager.generateFootnoteTips();
window.tocManager.displayDisableTocTips = false;
window.tocManager.generateToc();
setTimeout(function() { countViews(cb_blogId, cb_entryId); }, 50);
deliverT2();
deliverC1C2();
loadNewsAndKb();
LoadPostCategoriesTags(cb_blogId, cb_entryId);
LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
loadOptUnderPost();
GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);
</script>
</div>
</div><!--end: forFlow -->
</div><!--end: mainContent 主体内容容器-->
<div id="sideBar">
<div id="sideBarMain">
<div id="sidebar_news" class="newsItem">
<h3 class="catListTitle">公告</h3>
<div id="blog-news"><div class="container"> <div class="menu-wrap optiscroll is-enabled" id="menuWrap" style="display:none"><div class=" optiscroll-content" style="right: -3px; bottom: -3px;"> <nav class="menu"> <!-- 个人简介 --> <div class="introduce-box"> <div class="introduce-head"> <div class="introduce-via" id="menuBlogAvatar"><img src="https://pic.cnblogs.com/avatar/2215668/20201125161225.png"></div> </div> <div id="introduce">
昵称:
<a href="https://home.cnblogs.com/u/leixixi/">
我爱吃板栗~
</a>
<br>
园龄:
<a href="https://home.cnblogs.com/u/leixixi/" title="入园时间:2020-11-16">
4年1个月
</a>
<br>
粉丝:
<a class="follower-count" href="https://home.cnblogs.com/u/leixixi/followers/">
21
</a>
<br>
关注:
<a class="folowing-count" href="https://home.cnblogs.com/u/leixixi/followees/">
7
</a>
<div id="p_b_follow" class="follow-tip">
<a href="javascript:void(0)" onclick="follow('6fec7a78-2ae1-4245-1e8e-08d886dbd26e')">+加关注</a></div>
</div> </div> <!-- 导航 --> <div class="nav-title"></div> <div class="icon-list"> <ul id="m-nav-list"> <li><a href="https://www.cnblogs.com/leixixi/" target="_self"><i class="iconfont icon-homepage_fill"></i>首页</a></li><li><a href="https://msg.cnblogs.com/send/leixixi" target="_blank"><i class="iconfont icon-zhifeiji"></i>联系</a></li><li><a href="javascript:void(0)" onclick="$('#blog_nav_rss').trigger('click');" data-rss="https://www.cnblogs.com/leixixi/rss/"><i class="iconfont icon-qinmifu"></i>订阅</a></li><li><a href="https://i.cnblogs.com/" target="_blank"><i class="iconfont icon-setup_fill"></i>管理</a></li><li><a href="https://github.com/" target="_blank"><i class="iconfont icon-github"></i>GitHub</a></li><li><a href="https://gitee.com/" target="_blank"><i class="iconfont icon-gitee"></i>Gitee</a></li><li><a href="https://blog.csdn.net/qq_46363008?spm=1011.2124.3001.5343" target="_blank"><i class="iconfont icon-csdn"></i>CSDN</a></li><li><a href="https://space.bilibili.com/322783079" target="_blank"><i class="iconfont icon-bilibili"></i>B站</a></li></ul> </div> <!-- 日历 --> <span id="calendar-box"><div id="blog-calendar" style="visibility: visible;">
<table id="blogCalendar" class="Cal" cellspacing="0" cellpadding="0" title="Calendar" border="0">
<tbody>
<tr>
<td colspan="7">
<table class="CalTitle" cellspacing="0" border="0">
<tbody>
<tr>
<td class="CalNextPrev">
<a href="javascript:void(0);" onclick="loadBlogCalendar('2024/11/27'); return false;"><</a>
</td>
<td align="center">2024年12月</td>
<td align="right" class="CalNextPrev">
<a href="javascript:void(0);" onclick="loadBlogCalendar('2025/01/27'); return false;">></a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<th class="CalDayHeader" align="center" abbr="日" scope="col">日</th>
<th class="CalDayHeader" align="center" abbr="一" scope="col">一</th>
<th class="CalDayHeader" align="center" abbr="二" scope="col">二</th>
<th class="CalDayHeader" align="center" abbr="三" scope="col">三</th>
<th class="CalDayHeader" align="center" abbr="四" scope="col">四</th>
<th class="CalDayHeader" align="center" abbr="五" scope="col">五</th>
<th class="CalDayHeader" align="center" abbr="六" scope="col">六</th>
</tr>
<tr>
<td class="CalWeekendDay" align="center">
1
</td>
<td class="" align="center">
2
</td>
<td class="" align="center">
3
</td>
<td class="" align="center">
4
</td>
<td class="" align="center">
5
</td>
<td class="" align="center">
6
</td>
<td class="CalWeekendDay" align="center">
7
</td>
</tr>
<tr>
<td class="CalWeekendDay" align="center">
8
</td>
<td class="" align="center">
9
</td>
<td class="" align="center">
10
</td>
<td class="" align="center">
11
</td>
<td class="" align="center">
12
</td>
<td class="" align="center">
13
</td>
<td class="CalWeekendDay" align="center">
14
</td>
</tr>
<tr>
<td class="CalWeekendDay" align="center">
15
</td>
<td class="" align="center">
16
</td>
<td class="" align="center">
17
</td>
<td class="" align="center">
18
</td>
<td class="" align="center">
19
</td>
<td class="" align="center">
20
</td>
<td class="CalWeekendDay" align="center">
21
</td>
</tr>
<tr>
<td class="CalWeekendDay" align="center">
22
</td>
<td class="" align="center">
23
</td>
<td class="" align="center">
24
</td>
<td class="" align="center">
25
</td>
<td class="" align="center">
26
</td>
<td class="CalTodayDay" align="center">
27
</td>
<td class="CalWeekendDay" align="center">
28
</td>
</tr>
<tr>
<td class="CalWeekendDay" align="center">
29
</td>
<td class="" align="center">
30
</td>
<td class="" align="center">
31
</td>
<td class="CalOtherMonthDay" align="center">
1
</td>
<td class="CalOtherMonthDay" align="center">
2
</td>
<td class="CalOtherMonthDay" align="center">
3
</td>
<td class="CalOtherMonthDay" align="center">
4
</td>
</tr>
<tr>
<td class="CalOtherMonthDay" align="center">
5
</td>
<td class="CalOtherMonthDay" align="center">
6
</td>
<td class="CalOtherMonthDay" align="center">
7
</td>
<td class="CalOtherMonthDay" align="center">
8
</td>
<td class="CalOtherMonthDay" align="center">
9
</td>
<td class="CalOtherMonthDay" align="center">
10
</td>
<td class="CalOtherMonthDay" align="center">
11
</td>
</tr>
</tbody>
</table></div></span> <!-- 找找看 --> <div class="m-list-title" style="display: block;"><span>找找看</span></div> <div class="m-icon-list" id="sb-sidebarSearchBox"><div id="sb_widget_my_zzk" class="div_my_zzk"><input id="q" type="text" onkeydown="return zzk_go_enter(event);" class="input_my_zzk"></div></div> <!-- 积分与排名 --> <div class="m-list-title"><span>积分排名<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-sidebarScorerank"></div> <!-- 最新随笔 --> <div class="m-list-title"><span>最新随笔<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-sidebarRecentposts"></div> <!-- 我的标签 --> <div class="m-list-title"><span>我的标签<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-toptags"></div> <!-- 随笔分类 --> <div class="m-list-title"><span>随笔分类<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-classify"></div> <!-- 文章分类 --> <div class="m-list-title"><span>文章分类<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-ArticleCategory"></div> <!-- 阅读排行 --> <div class="m-list-title" style="display: block;"><span>阅读排行<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-topview"><div><ul><li><a href="https://www.cnblogs.com/leixixi/p/14751914.html"><span class="iconfont icon-browse_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>rsync的介绍和配置(11491)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14515614.html"><span class="iconfont icon-browse_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>podman命令使用和用户配置(10358)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14749322.html"><span class="iconfont icon-browse_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>HAProxy安装与配置(6633)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14630300.html"><span class="iconfont icon-browse_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>zabbix介绍和服务端部署+web界面安装(4546)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14509052.html"><span class="iconfont icon-browse_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>Harbor介绍与搭建并使用(2620)</a></li></ul></div></div> <!-- 推荐排行 --> <div class="m-list-title" style="display: block;"><span>推荐排行<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-topDiggPosts"><div><ul><li><a href="https://www.cnblogs.com/leixixi/p/14749322.html"><span class="iconfont icon-like_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>HAProxy安装与配置(4)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14751914.html"><span class="iconfont icon-like_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>rsync的介绍和配置(3)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14630300.html"><span class="iconfont icon-like_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>zabbix介绍和服务端部署+web界面安装(1)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/14509052.html"><span class="iconfont icon-like_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>Harbor介绍与搭建并使用(1)</a></li></ul></div></div> <!-- 最新评论 --> <div class="m-list-title" style="display: block;"><span>最新评论<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-recentComments"><div><ul><li><a href="https://www.cnblogs.com/leixixi/p/14751914.html"><span class="iconfont icon-pinglunzu" style="color: #888;font-size: 15px;margin-right: 5px;"></span>Re:rsync的介绍和配置</a><div style="padding-left: 1.5em;color: #777;position: relative;top: -5px;">太详细了
感谢
</div><div style="text-align: right;color: #444;position: relative;top: -10px;">--小弧光</div></li></ul></div></div> <!-- 文章档案 --> <div class="m-list-title"><span>文章档案<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-articlearchive"></div> <!-- 随笔档案 --> <div class="m-list-title" style="display: block;"><span>随笔档案<span class="iconfont icon-select m-list-title-select"></span></span></div> <div class="m-icon-list" id="sb-record"><div><ul><li><a href="https://www.cnblogs.com/leixixi/p/archive/2023/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2023年1月(1)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/06" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年6月(1)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/05" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年5月(16)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/04" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年4月(12)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/03" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年3月(15)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/02" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年2月(3)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2021/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2021年1月(9)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2020/12" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2020年12月(9)</a></li><li><a href="https://www.cnblogs.com/leixixi/p/archive/2020/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target=""><span class="iconfont icon-task_fill" style="color: #888;font-size: 14px;margin-right: 5px;"></span>2020年11月(7)</a></li></ul></div></div> <!-- 自定义列表 --> <span id="menuCustomList"></span> </nav> <button class="close-button" id="close-button">Close Menu</button> <div class="morph-shape" id="morph-shape" data-morph-open="M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z"> <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 100 800" preserveAspectRatio="none"> <path d="M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z"></path> <desc>Created with Snap</desc><defs></defs></svg> </div> </div><div class="optiscroll-v"><b class="optiscroll-vtrack"></b></div><div class="optiscroll-h"><b class="optiscroll-htrack"></b></div></div> <button class="menu-button" id="open-button">MENU</button> <div class="content-wrap" id="content-wrap"></div><!-- /content-wrap --></div><div class="main-header" style="height: 40vh; background: url("https://files.dbnuo.com/wallpaper/wallhaven-4d38m0.webp") center center / cover no-repeat rgb(34, 34, 34);"> <canvas id="notHomeTopCanvas" width="0" height="0"></canvas> <div class="vertical"> <div class="main-header-content inner" style="max-width: 100vw;"> <h1 class="page-title" id="homeTopTitle" style="display: none;">Lei AOAO 我爱吃板栗~</h1> <h2 class="page-description" id="hitokoto"></h2> <h3 class="page-author" id="hitokotoAuthor"></h3> <h1 class="sb-title" id="sbTitle">
nginx
</h1> <p class="article-info" id="articleInfo"><p class="article-info-text"><span class="postMeta"><i class="iconfont icon-time1"></i>发表于 2021-05-25 08:59<i class="iconfont icon-browse"></i>阅读:160<i class="iconfont icon-interactive"></i>评论:0<i class="iconfont icon-hot"></i>推荐:0</span></p></p> </div> </div> <a class="scroll-down" href="javascript:void(0);" data-offset="-45" style="display: none;"> <span class="hidden">Scroll Down</span> <i class="scroll-down-icon iconfont icon-fanhui"></i> </a></div><div id="loading" style="display: none;"></div><div id="bottomProgressBar"><div id="top-progress-bar" style="position: relative; top: 0px; left: 0px; right: 0px; background-color: rgb(119, 182, 255); height: 2px; width: 0%; transition: width 0.2s, opacity 0.6s; opacity: 1;"></div></div><div id="rightMenu"><div id="rightDiggit" clickflg="false" onclick="votePost(14811640,'Digg')"><span class="rightMenuSpan rightDiggitSpan">0</span><i class="iconfont icon-zan1"></i></div><div id="rightBuryit" clickflg="false" onclick="votePost(14811640,'Bury')"><span class="rightMenuSpan rightBuryitSpan">0</span><i class="iconfont icon-buzan"></i></div><div id="attention" onclick="follow('6fec7a78-2ae1-4245-1e8e-08d886dbd26e')" clickflg="false"><span class="rightMenuSpan attentionSpan">关注</span><i class="iconfont icon-dianzan"></i></div><div id="toUpDown" data="down"><span class="rightMenuSpan toUpDownSpan">跳至底部</span><div id="toUpDownI" style="transform: rotate(-180deg); transform-origin: 50% 50%;"><i class="iconfont icon-zhiding"></i></div></div></div>
<div id="sidebar_news_content"><script type="text/javascript">window['__document_write_ajax_callbacks__']['4']();</script><script type="text/javascript">window['__document_write_ajax_callbacks__']['1']();</script>
<script type="text/javascript">window['__document_write_ajax_callbacks__']['5']();</script><script type="text/javascript">window['__document_write_ajax_callbacks__']['6']();</script><script>window['__document_write_ajax_callbacks__']['2']();</script>
<div id="profile_block">
昵称:
<a href="https://home.cnblogs.com/u/leixixi/">
我爱吃板栗~
</a>
<br>
园龄:
<a href="https://home.cnblogs.com/u/leixixi/" title="入园时间:2020-11-16">
4年1个月
</a>
<br>
粉丝:
<a class="follower-count" href="https://home.cnblogs.com/u/leixixi/followers/">
21
</a>
<br>
关注:
<a class="folowing-count" href="https://home.cnblogs.com/u/leixixi/followees/">
7
</a>
<div id="p_b_follow" class="follow-tip">
<a href="javascript:void(0)" onclick="follow('6fec7a78-2ae1-4245-1e8e-08d886dbd26e')">+加关注</a></div>
<script type="text/javascript">window['__document_write_ajax_callbacks__']['7']();</script><script>window['__document_write_ajax_callbacks__']['3']();</script>
</div>
</div>
</div>
<script>loadBlogNews();</script>
</div>
<div id="sidebar_c3"></div>
<script>loadBlogDefaultCalendar();</script>
<div id="leftcontentcontainer">
<div id="blog-sidecolumn"><!-- 搜索 -->
<div id="sidebar_search" class="sidebar-block">
<div class="mySearch my-search">
<h3 class="catListTitle">搜索</h3>
<div id="sidebar_search_box">
<div id="widget_my_zzk" class="div_my_zzk">
<input type="text" id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk"> <input onclick="zzk_go()" type="button" value="找找看" id="btnZzk" class="btn_my_zzk">
</div>
</div>
</div>
</div>
<!-- 常用链接 -->
<div id="sidebar_shortcut" class="sidebar-block"><div class="catListLink">
<h3 class="catListTitle">
常用链接
</h3>
<ul>
<li><a href="https://www.cnblogs.com/leixixi/p/" title="我的博客的随笔列表">我的随笔</a></li>
<li><a href="https://www.cnblogs.com/leixixi/MyComments.html" title="我的发表过的评论列表">我的评论</a></li>
<li><a href="https://www.cnblogs.com/leixixi/OtherPosts.html" title="我评论过的随笔列表">我的参与</a></li>
<li><a href="https://www.cnblogs.com/leixixi/comments" title="我的博客的评论列表">最新评论</a></li>
<li><a href="https://www.cnblogs.com/leixixi/tag/" title="我的博客的标签列表">我的标签</a></li>
</ul>
</div>
</div>
<!-- 最新随笔 -->
<!-- 我的标签 -->
<div id="sidebar_toptags" class="sidebar-block"></div>
<!-- 积分与排名 -->
<!-- 随笔分类、随笔档案、文章分类、新闻分类、相册、链接 -->
<div id="sidebar_categories">
<div id="sidebar_postarchive" class="catListPostArchive sidebar-block">
<h3 class="catListTitle">
随笔档案
</h3>
<ul>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2023/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2023年1月(1)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/06" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年6月(1)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/05" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年5月(16)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/04" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年4月(12)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/03" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年3月(15)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/02" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年2月(3)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2021/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2021年1月(9)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2020/12" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2020年12月(9)</a>
</li>
<li data-category-list-item-visible="true" style="display: block">
<a href="https://www.cnblogs.com/leixixi/p/archive/2020/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2020年11月(7)</a>
</li>
</ul>
</div>
</div>
<!-- 最新评论 -->
<!-- 阅读排行榜 -->
<div id="sidebar_topviewedposts" class="sidebar-block"><div class="catListView">
<h3 class="catListTitle">
<a href="https://www.cnblogs.com/leixixi/most-viewed" class="sidebar-card-title-a">
阅读排行榜
</a>
</h3>
<div id="TopViewPostsBlock">
<ul style="word-break:break-all">
<li>
<a href="https://www.cnblogs.com/leixixi/p/14751914.html">
1. rsync的介绍和配置(11491)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14515614.html">
2. podman命令使用和用户配置(10358)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14749322.html">
3. HAProxy安装与配置(6633)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14630300.html">
4. zabbix介绍和服务端部署+web界面安装(4546)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14509052.html">
5. Harbor介绍与搭建并使用(2620)
</a>
</li>
</ul>
</div>
</div></div>
<!-- 评论排行榜 -->
<div id="sidebar_topcommentedposts" class="sidebar-block"><div class="catListFeedback">
<h3 class="catListTitle">
<a href="https://www.cnblogs.com/leixixi/most-commented" class="sidebar-card-title-a">评论排行榜</a>
</h3>
<div id="TopFeedbackPostsBlock">
<ul style="word-break:break-all">
<li>
<a href="https://www.cnblogs.com/leixixi/p/14751914.html">
1. rsync的介绍和配置(1)
</a>
</li>
</ul>
</div>
</div></div>
<!-- 推荐排行榜 -->
<div id="sidebar_topdiggedposts" class="sidebar-block">
<div id="topdigg_posts_wrap">
<div class="catListView">
<h3 class="catListTitle">
<a href="https://www.cnblogs.com/leixixi/most-liked" class="sidebar-card-title-a">推荐排行榜</a>
</h3>
<div id="TopDiggPostsBlock">
<ul style="word-break: break-all">
<li>
<a href="https://www.cnblogs.com/leixixi/p/14749322.html">
1. HAProxy安装与配置(4)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14751914.html">
2. rsync的介绍和配置(3)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14630300.html">
3. zabbix介绍和服务端部署+web界面安装(1)
</a>
</li>
<li>
<a href="https://www.cnblogs.com/leixixi/p/14509052.html">
4. Harbor介绍与搭建并使用(1)
</a>
</li>
</ul>
</div>
</div>
</div></div><div id="sidebar_recentcomments" class="sidebar-block"><div class="catListComment">
<h3 class="catListTitle"><a href="https://www.cnblogs.com/leixixi/comments" class="sidebar-card-title-a">最新评论</a></h3>
<div class="RecentCommentBlock">
<ul>
<li class="recent_comment_title"><a href="https://www.cnblogs.com/leixixi/p/14751914.html">1. Re:rsync的介绍和配置</a></li>
<li class="recent_comment_body"><p>太详细了</p>
<p>感谢</p>
</li>
<li class="recent_comment_author">--小弧光</li>
</ul>
</div>
</div>
</div>
</div>
<script>loadBlogSideColumn();</script>
</div>
</div><!--end: sideBarMain -->
</div><!--end: sideBar 侧边栏容器 -->
<div class="clear"></div>
</div>

浙公网安备 33010602011771号