-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrss2.xml
79 lines (47 loc) · 38.7 KB
/
rss2.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>墨鱼湾</title>
<link>http://example.com/</link>
<atom:link href="http://example.com/rss2.xml" rel="self" type="application/rss+xml"/>
<description>想成为赛亚人!</description>
<pubDate>Sat, 08 Jul 2023 23:03:53 GMT</pubDate>
<generator>http://hexo.io/</generator>
<item>
<title>ngnix网页</title>
<link>http://example.com/2023/07/08/ngnix%E7%BD%91%E9%A1%B5/</link>
<guid>http://example.com/2023/07/08/ngnix%E7%BD%91%E9%A1%B5/</guid>
<pubDate>Sat, 08 Jul 2023 04:12:57 GMT</pubDate>
<description><div id="article_content" class="article_content clearfix" style="overflow: auto; height: auto;">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css">
<div id="content_views" class="markdown_views prism-atom-one-dark">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p></p>
<div class="toc">
<h3><a name="t0"></a>Nginx</h3>
<ul><li><a href="#Nginx_1" target="_self">一、什么是Nginx</a></li><li><a href="#Nginx_5" target="_self">二、Nginx的作用</a></li></description>
<content:encoded><![CDATA[<div id="article_content" class="article_content clearfix" style="overflow: auto; height: auto;"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css"> <div id="content_views" class="markdown_views prism-atom-one-dark"> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> <div class="toc"> <h3><a name="t0"></a>Nginx</h3> <ul><li><a href="#Nginx_1" target="_self">一、什么是Nginx</a></li><li><a href="#Nginx_5" target="_self">二、Nginx的作用</a></li> <span id="more"></span><li><a href="#Nginx_30" target="_self">三、Nginx的安装</a></li><li><ul><li><a href="#1_Windows_32" target="_self">1. Windows下安装</a></li><li><a href="#2Linux_54" target="_self">2.Linux下安装</a></li><li><a href="#3Nginx_124" target="_self">3.Nginx目录结构</a></li><li><a href="#4Nginx_132" target="_self">4.Nginx常用命令</a></li><li><a href="#5Nginx_219" target="_self">5.Nginx配置文件结构</a></li></ul> </li><li><a href="#Nginx_232" target="_self">四、Nginx具体应用</a></li><li><ul><li><a href="#1_233" target="_self">1.部署静态资源</a></li><li><a href="#2_248" target="_self">2.反向代理</a></li><li><a href="#3_262" target="_self">3.负载均衡</a></li><li><a href="#3_283" target="_self">3.负载均衡策略</a></li></ul> </li></ul> </div> <p></p> <h1><a name="t1"></a><a id="Nginx_1"></a>一、什么是Nginx</h1> <p>Nginx(engine x)是一个轻量级高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,其特点是<strong>占有内存少</strong>,<strong>并发能力强</strong>,事实上Nginx的并发能力在同类型的网页服务器中表现较好,Nginx是一个安装非常简单、配置文件非常简洁,(支持perl语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。<br> Nginx代码完全用C语言从头写成。官方数据测试表明能够达到高达50,000个并发连接的响应。</p> <h1><a name="t2"></a><a id="Nginx_5"></a>二、Nginx的作用</h1> <blockquote> <p>Http代理,反向代理:作为Web服务器最常用的功能之一,尤其是反向代理,反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端做任何设定。<br> <img src="https://img-blog.csdnimg.cn/cf8aec170a2a411e9e3eb47ca2b0b1c3.png#pic_center" alt="在这里插入图片描述"></p> </blockquote> <p><strong>反向代理</strong><br> <img src="https://img-blog.csdnimg.cn/0e51ae4602ee4cf2b734e3c3bd70eb04.png#pic_center" alt="在这里插入图片描述"></p> <blockquote> <p>Nginx提供的负载均衡策略有2种:内置策略和扩展策略。<br> 内置策略为轮询,加权轮询,Ip hash。<br> 扩展策略,就天马行空,只有你想不到的没有你做不到的。</p> </blockquote> <p><strong>轮询</strong><br> <img src="https://img-blog.csdnimg.cn/4d40abcd1ae34a04ba01cfb50d690de3.png#pic_center" alt="在这里插入图片描述"><br> <strong>加权轮询</strong><br> <img src="https://img-blog.csdnimg.cn/c57b2a63cfa94e2f9de33b552dde8000.png#pic_center" alt="在这里插入图片描述"><br> iphash对客户端的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。<br> <img src="https://img-blog.csdnimg.cn/3ac5f414ad15495e9f00baf496db1988.png#pic_center" alt="在这里插入图片描述"></p> <blockquote> <p>动静分离,在软件开发中,有些请求是需要后台处理的,有些请求是不需要经后台处理的(如:css、html、js 等文件),这些不需要后台处理的文件称为静态文件。让动态网站里的动态网页一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。</p> </blockquote> <p><img src="https://img-blog.csdnimg.cn/6536cab74a8348dea1d1e9344b89254c.png#pic_center" alt="在这里插入图片描述"></p> <p><img src="https://img-blog.csdnimg.cn/a572ea340f294a568ce1f742b8cc6f1e.png#pic_center" alt="在这里插入图片描述"></p> <h1><a name="t3"></a><a id="Nginx_30"></a>三、Nginx的安装</h1> <p>下载nginx<a href="http://nginx.org/en/download.html">官网链接</a>下载稳定版本。找系统对应的版本。</p> <h2><a name="t4"></a><a id="1_Windows_32"></a>1. Windows下安装</h2> <ol><li>启动Nginx<br> 有很多启动方式<br> ①直接双击nginx.exe,双击之后有一个黑色的弹窗一闪而过<br> ②使用cmd命令窗口,切换到nginx目录下,输入命令<code>nginx.exe</code>,回车即可</li><li>检查nginx是否安装成功<br> 在浏览器输入<a href="http://localhost/">http://localhost/</a>回车,出现以下页面说明安装成功!<br> <img src="https://img-blog.csdnimg.cn/9b5643437ddb46b5aab50fe30dddbce5.png#pic_center" alt="在这里插入图片描述"></li><li>配置监听<br> nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。<br> <img src="https://img-blog.csdnimg.cn/d5d029af2fe94635b47d07079e312824.png#pic_center" alt="在这里插入图片描述"><br> 当我们修改了nginx的配置文件nginx.config时,不需要关闭nginx后重新启动nginx,只需要执行命令<code>nginx -s reload</code>即可让改动文件生效</li><li>关闭Nginx<br> 如果使用cmd窗口启动nginx,关闭cmd窗口是不能结束nginx进程的<br> 两种关闭nginx的方法:</li></ol> <ul><li>输入nginx命令 <code>nginx -s stop</code>(快速停止nginx)或<code>nginx -s quit</code>(完整有序的停止nginx)</li><li>使用taskkil <code>taskkill /f /t /im nginx.exe</code></li></ul> <blockquote> <p>1.taskkil是用来终止进程的。<br> 2. /f是强制终止<br> 3. /t终止指定的进程和任何由此启动的子进程<br> 4. /im示指定的进程名称</p> </blockquote> <h2><a name="t5"></a><a id="2Linux_54"></a>2.Linux下安装</h2> <ol><li>安装gcc<br> 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装:</li></ol> <pre data-index="0" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">yum install gcc<span class="token operator">-</span>c<span class="token operator">++</span><div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="2"><li>PCRE pcer-devel安装<br> PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在Linux上安装pcre库,pcre-devel是使用pre开发的一个二次开发库,nginx也需要此库。命令:</li></ol> <pre data-index="1" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">yum install <span class="token operator">-</span>y pcre pcre<span class="token operator">-</span>devel<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>3.zlib安装<br> zlib库提供了很多种压缩和解压缩的方式,nginx使用zib对http包内的内容进行gzip,所以需要在CentOS上安装zlib库。</p> <pre data-index="2" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">yum install <span class="token operator">-</span>y zlib zlib<span class="token operator">-</span>devel<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="4"><li>OpenSSL安装<br> OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的的使用。Nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在CentOS上安装OpenSSL库。</li></ol> <pre data-index="3" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">yum install <span class="token operator">-</span>y oppenssl oppenssl<span class="token operator">-</span>devel<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="5"><li>wget安装</li></ol> <pre data-index="4" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">yum install wget<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="6"><li>下载nginx</li></ol> <pre data-index="5" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">wget http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>nginx<span class="token punctuation">.</span>org<span class="token operator">/</span>download<span class="token operator">/</span>nginx<span class="token operator">-</span><span class="token number">1.20</span><span class="token number">.2</span><span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="7"><li>解压(在root目录下)</li></ol> <pre data-index="6" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">tar <span class="token operator">-</span>zxvfnginx<span class="token operator">-</span><span class="token number">1.20</span><span class="token number">.2</span><span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <pre data-index="7" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">cd nginx<span class="token operator">-</span><span class="token number">1.20</span><span class="token number">.2</span><div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p><img src="https://img-blog.csdnimg.cn/cd3c667bbcba4dbbb13fc964985c0997.png#pic_center" alt="在这里插入图片描述"><br> 8. 配置<br> 使用默认配置,在nginx根目录下执行,<mark>确保以上命令都执行</mark></p> <p>首先创建要安装的目录文件</p> <pre data-index="8" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">mkdir <span class="token operator">-</span>p <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>安装到指定目录下</p> <pre data-index="9" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/configure <span class="token operator">--</span>prefix<span class="token operator">=</span><span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>编译安装</p> <pre data-index="10" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">make <span class="token operator">&&</span> make install<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>查看安装路径</p> <pre data-index="11" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">whereis nginx<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <h2><a name="t6"></a><a id="3Nginx_124"></a>3.Nginx目录结构</h2> <p>安装完Nginx后,Nginx的目录结构如图:<br> <img src="https://img-blog.csdnimg.cn/55a8c67dc38d480e92f184c564671cfd.png#pic_center" alt="在这里插入图片描述"><br> 重点目录/文件:</p> <ul><li>conf/nginx.conf nginx配置文件</li><li>html 存放静态文件(html、css、js等)</li><li>logs 日志文件,存放日志文件</li><li>sbin/nginx 二进制文件,用于启动,停止Nginx服务</li></ul> <h2><a name="t7"></a><a id="4Nginx_132"></a>4.Nginx常用命令</h2> <ol><li>进入nginx,sbin目录下</li></ol> <pre data-index="12" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">cd <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>sbin<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="2"><li>查看版本</li></ol> <pre data-index="13" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx <span class="token operator">-</span>v<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>3.检查配置文件的正确性</p> <pre data-index="14" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx <span class="token operator">-</span>t<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="4"><li>启动Nginx服务</li></ol> <pre data-index="15" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="5"><li>停止Nginx服务</li></ol> <pre data-index="16" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx <span class="token operator">-</span>s stop<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="6"><li>安全退出Nginx服务</li></ol> <pre data-index="17" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx <span class="token operator">-</span>s quit<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="7"><li>查看nginx进程</li></ol> <pre data-index="18" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">ps aux<span class="token operator">|</span>grepnginx<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="8"><li>重新加载配置文件</li></ol> <pre data-index="19" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span>/nginx <span class="token operator">-</span>s reload<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <ol start="9"><li>配置环境变量</li></ol> <pre data-index="20" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">vim <span class="token operator">/</span>etc<span class="token operator">/</span>profile<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>追加:</p> <pre data-index="21" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">PAHT<span class="token operator">=</span><span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>nginx<span class="token operator">/</span>sbin<span class="token operator">:</span>$JAVA_HOME<span class="token operator">/</span>bin<span class="token operator">:</span>$PATH<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>保存生效:</p> <pre data-index="22" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">source <span class="token operator">/</span>etc<span class="token operator">/</span>profile<div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> <p>启动成功访问 服务器ip:80</p> <p><strong>注意:</strong><br> 如果连接不上,检查云服务器安全组是否开放端口,或者服务器防火墙是否开放端口!</p> <p><mark>相关命令</mark></p> <pre data-index="23" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token number">11.</span> # 开启<span class="token number">12.</span> service firewalld start<span class="token number">13.</span> # 重启<span class="token number">14.</span> service firewalld restart<span class="token number">15.</span> # 关闭<span class="token number">16.</span> service firewalld stop<span class="token number">17.</span> # 查看防火墙规则<span class="token number">18.</span> firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>list<span class="token operator">-</span>all<span class="token number">19.</span> # 查看端口是否开放<span class="token number">20.</span> firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>query<span class="token operator">-</span>port<span class="token operator">=</span><span class="token number">8080</span><span class="token operator">/</span>tcp<span class="token number">21.</span> # 开放<span class="token number">80</span>端口<span class="token number">22.</span> firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>permanent <span class="token operator">--</span>add<span class="token operator">-</span>port<span class="token operator">=</span><span class="token number">80</span><span class="token operator">/</span>tcp<span class="token number">23.</span> # 移除端口<span class="token number">24.</span> firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>permanent <span class="token operator">--</span>remove<span class="token operator">-</span>port<span class="token operator">=</span><span class="token number">8080</span><span class="token operator">/</span>tcp<span class="token number">25.</span> # 重启防火墙(修改配置后要重启防火墙)<span class="token number">26.</span> firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>reload<span class="token number">27.</span> # 参数解释<span class="token number">28.</span> firewall<span class="token operator">-</span>cmd:是<span class="token class-name">Linux</span>提供的操作firewall的一个工具<span class="token number">29.</span> <span class="token operator">--</span>permanent:表示设置为持久<span class="token number">30.</span> <span class="token operator">--</span>add<span class="token operator">-</span>port:标识添加的端口 <div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li></ul></pre> <h2><a name="t8"></a><a id="5Nginx_219"></a>5.Nginx配置文件结构</h2> <p>整体结构介绍<br> Nginx配置文件(cong/nginx.conf)整体分为三部分:</p> <ul><li>全局快 ( 和Nginx运行相关的全局配置)</li><li>events块 ( 和网络连接相关的配置)</li><li>http快(代理、缓存、日志记录、虚拟主机配置) <ul><li>http全局快</li><li><code>Server块</code> <ul><li>Server全局块</li><li>location块<br> 注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。<br> <img src="https://img-blog.csdnimg.cn/53da4a82d92a45e2b8022c2c492ab86a.png#pic_center" alt="在这里插入图片描述"></li></ul> </li></ul> </li></ul> <h1><a name="t9"></a><a id="Nginx_232"></a>四、Nginx具体应用</h1> <h2><a name="t10"></a><a id="1_233"></a>1.部署静态资源</h2> <p>Nginx可以作为静态web服务器来部署静态资源。<strong>静态资源</strong> 指在服务端真实存在并且能够直接展示的一些文件,比如常见的html文件、css文件、js文件、图片、视频等资源。<br> 相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。</p> <pre data-index="24" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span># 监听端口 server_name localhost<span class="token punctuation">;</span># 服务器名称 location <span class="token operator">/</span><span class="token punctuation">{<!-- --></span># 匹配客户端请求url root html<span class="token punctuation">;</span># 指定静态资源根目录 index index<span class="token punctuation">.</span>html<span class="token punctuation">;</span># 指定默认首页 <span class="token punctuation">}</span><span class="token punctuation">}</span><div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li></ul></pre> <h2><a name="t11"></a><a id="2_248"></a>2.反向代理</h2> <ul><li>配置反向代理</li></ul> <pre data-index="25" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">server <span class="token punctuation">{<!-- --></span> listen <span class="token number">82</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> location <span class="token operator">/</span><span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span><span class="token number">192.168</span><span class="token number">.81</span><span class="token number">.129</span><span class="token operator">:</span><span class="token number">8080</span><span class="token punctuation">;</span>#反向代理配置,将请求转发到指定服务 <span class="token punctuation">}</span><span class="token punctuation">}</span><div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li></ul></pre> <p><img src="https://img-blog.csdnimg.cn/f0abf6a57ad445819a7c787737104782.png#pic_center" alt="在这里插入图片描述"></p> <h2><a name="t12"></a><a id="3_262"></a>3.负载均衡</h2> <p>早期的网站流量业务功能都比较简单,单台服务器就可以满足基本要求,但是随着互联网的发展,业务流量越来越大并且业务逻辑越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障的出现。</p> <ul><li>应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回效应数据</li><li>负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理<br> <img src="https://img-blog.csdnimg.cn/19c12a264a7d4a4fb3f258894203ae9e.png#pic_center" alt="在这里插入图片描述"><br> 配置负载均衡:</li></ul> <pre data-index="26" class="prettyprint"><code class="prism language-java has-numbering" onclick="mdcp.signin(event)" style="position: unset;">upstream targetserver<span class="token punctuation">{<!-- --></span># upstream指令可以定义一组服务器 server <span class="token number">192.168</span><span class="token number">.81</span><span class="token number">.129</span><span class="token operator">:</span><span class="token number">8080</span><span class="token punctuation">;</span> server <span class="token number">192.168</span><span class="token number">.81</span><span class="token number">.129</span><span class="token operator">:</span><span class="token number">8081</span><span class="token punctuation">;</span><span class="token punctuation">}</span>server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> location <span class="token operator">/</span><span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>targetserver<span class="token punctuation">;</span>#反向代理配置,将请求转发到指定服务 <span class="token punctuation">}</span><span class="token punctuation">}</span><div class="hljs-button signin" data-title="登录后复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li></ul></pre> <h2><a name="t13"></a><a id="3_283"></a>3.负载均衡策略</h2> <div class="table-box"><table><thead><tr><th>名称</th><th>说明</th></tr></thead><tbody><tr><td>轮询</td><td>默认方式</td></tr><tr><td>weight</td><td>权重方式</td></tr><tr><td>ip_hash</td><td>依据ip分配方式</td></tr><tr><td>least_conn</td><td>依据最少连接方式</td></tr><tr><td>url_hash</td><td>依据url分配方式</td></tr><tr><td>fair</td><td>依据响应时间方式</td></tr></tbody></table></div> </div><div data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/qq_40492693/article/details/124453090","extend1":"pc","ab":"new"}"><div></div></div> <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-98b95bb57c.css" rel="stylesheet"> <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-c216769e99.css" rel="stylesheet"> </div>]]></content:encoded>
<category domain="http://example.com/categories/web%E5%89%8D%E7%AB%AF/">web前端</category>
<category domain="http://example.com/tags/%E6%9D%82%E6%96%87/">杂文</category>
<category domain="http://example.com/tags/%E5%89%8D%E7%AB%AF/">前端</category>
<category domain="http://example.com/tags/%E7%A7%91%E6%99%AE/">科普</category>
<comments>http://example.com/2023/07/08/ngnix%E7%BD%91%E9%A1%B5/#disqus_thread</comments>
</item>
<item>
<title>Hello World</title>
<link>http://example.com/2023/07/06/hello-world/</link>
<guid>http://example.com/2023/07/06/hello-world/</guid>
<pubDate>Thu, 06 Jul 2023 07:49:29 GMT</pubDate>
<description><p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for</description>
<content:encoded><![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>]]></content:encoded>
<category domain="http://example.com/categories/HelloWorld/">HelloWorld</category>
<category domain="http://example.com/tags/%E6%96%B0%E6%89%8B%E6%9D%91%E6%81%B6%E9%9C%B8/">新手村恶霸</category>
<comments>http://example.com/2023/07/06/hello-world/#disqus_thread</comments>
</item>
</channel>
</rss>