服务器学习心得


核心指令

<h1>核心指令-Nginx基础应用</h1> <h2>核心参数</h2> <pre><code class="language-sehll">user pid worker_rlimit_core worker_rlimit_nofile worker_processes worker_cpu_affinity worker_priority worker_shutdown_timeout timer_resolution daemon</code></pre> <h2>事件模块常用参数</h2> <ul> <li> <p>use</p> <ul> <li>nginx使用何种事件驱动模型worker_connections</li> <li>worker子进程能够处理的最大并发连接数</li> </ul> </li> <li>accept_mutex <ul> <li>是否打开负载均衡互斥锁</li> </ul></li> <li>accept_mutex_delay <ul> <li>新连接分配给worker子进程的超时时间</li> </ul></li> <li>lock_file <ul> <li>负载均衡互斥锁文件存放的路径</li> </ul></li> <li>muti_accept <ul> <li>worker子进程可以接收到的新连接个数</li> </ul></li> </ul> <h2>server_name指令用法优先级</h2> <ul> <li>精确匹配</li> <li>左侧通配符匹配</li> <li>右侧通配符匹配</li> <li>正则表达式匹配</li> </ul> <h2>root和alias的区别</h2> <ul> <li> <p>相同点</p> <ul> <li>url到磁盘文件的映射</li> </ul> </li> <li> <p>区别</p> <ul> <li>root会将定义路径与url叠加</li> <li>alias则只取定义路径</li> <li>使用alias时,末尾一定加/,alias只能位于location块中</li> </ul> </li> <li> <p>举例</p> <pre><code class="language-shell"># 1、客户端请求图片url地址: www.test.com/picture/1.jpg # 实际磁盘路径为: /opt/nginx/html/picture/1.jpg # 2、root路径为 /opt/nginx/html/picture/picture/1.jpg # 3、alias路径为 /opt/nginx/html/picture/1.jpg</code></pre> </li> </ul> <h2>location的作用</h2> <ul> <li> <p>根据请求URI设置配置,实现了对请求的细分处理,有些 URI 返回静态内容,有些分发到后端服务器等</p> </li> <li> <p>location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。</p> </li> <li> <p>匹配符号含义</p> <ul> <li> <p>= 精确匹配</p> </li> <li> <p>~ 正则匹配,区分大小写</p> </li> <li> <p>~* 正则匹配,不区分大小写</p> </li> <li> <p>^~ 匹配到即停止搜索</p> </li> <li>不带任何符号</li> </ul> <pre><code class="language-nginx">location / { ... }</code></pre> </li> </ul> <h2>location匹配符号优先级</h2> <ul> <li>=</li> <li>^~</li> <li>~</li> <li>^~</li> <li>不带任何符号</li> </ul> <h2>深入理解location中URL结尾的反斜线</h2> <ul> <li> <p>url不带</p> <pre><code class="language-nginx">location /test { ... }</code></pre> <ul> <li>nginx会将test作为一个目录处理,如果找到test目录,把test当做一个目录处理;</li> <li>如果找不到test目录,nginx会尝试把test当成一个文件,返回给用户。</li> </ul> </li> <li> <p>url带/</p> <pre><code class="language-nginx">location /test/ { ... }</code></pre> <ul> <li>nginx只会将test作为一个目录处理,相当于严谨写法</li> </ul> </li> </ul> <h2>stub_status模块用法</h2> <ul> <li> <p>基本状态信息可从周围位置获取</p> </li> <li> <p>用于查看Nginx的一些状态信息</p> </li> <li> <p>使用的上下文中为</p> <ul> <li>server或location段中</li> </ul> </li> <li> <p>低于1.7.5.版本中写法</p> <pre><code class="language-nginx">stub_status on;</code></pre> </li> <li> <p>高于1.7.5.版本中写法</p> <pre><code class="language-nginx">stub_status;</code></pre> </li> <li> <p>实例</p> <pre><code class="language-nginx"># location 斜杠后边的url地址要写的复杂一些,避免让用户猜到 location /monitor_status { stub_status; }</code></pre> </li> <li> <p>stub_status模块,nginx返回相关参数说明</p> <ul> <li>Active connections</li> <li> <p>对后端发起的活动连接数.</p> </li> <li>accepts</li> <li> <p>接受的客户端连接总数量</p> </li> <li>request</li> <li> <p>客户端总请求数量</p> </li> <li>handled</li> <li> <p>处理的客户端连接总数量</p> </li> <li>Server accepts handled requests</li> <li> <p>Nginx总共处理了38810620个连接,成功创建38810620次握手(证明中间没有失败的),总共处理了298655730个请求.</p> </li> <li>Reading</li> <li> <p>Nginx 读取到客户端的Header信息数.</p> </li> <li>Writing</li> <li> <p>Nginx 返回给客户端的Header信息数.</p> </li> <li>Waiting</li> <li>开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接</li> </ul> </li> </ul>

页面列表

ITEM_HTML