Site updated: 2022-11-08 13:28:02

This commit is contained in:
qinglong committed 2022-11-08 13:28:03 +08:00
1 parent 8587f4a8c6
commit 4270198fa4
106 files changed
+121 -219

No files matched your search

+1 -1
View File
@@ -11,7 +11,7 @@
"url": "https://blog.jingxiyuan.cn/2022/11/08/Nginx%E9%85%8D%E7%BD%AE-%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/",
"title": "Nginx配置-反向代理",
"date_published": "2022-11-08T02:05:00.000Z",
"content_html": "<h4 id=\"引言\"><a class=\"anchor\" href=\"#引言\">#</a> 引言</h4>\n<ul>\n<li>所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。</li>\n</ul>\n<h4 id=\"何为反向代理\"><a class=\"anchor\" href=\"#何为反向代理\">#</a> 何为反向代理</h4>\n<ul>\n<li>在介绍反向代理之前,先来了解一下正向代理。</li>\n</ul>\n<p>__正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/08/991a203be1ec82b36e1f326376617d40.png\" alt=\"991a203be1ec82b36e1f326376617d40.png\" /><br />\n__反向代理:__看下面原理图,就一目了然。其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/08/1c87e386a0ce624a3949bda443cf346d.png\" alt=\"1c87e386a0ce624a3949bda443cf346d.png\" /></p>\n<blockquote>\n<p>正向代理和反向代理的区别,一句话就是:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。</p>\n</blockquote>\n<h4 id=\"nginx配置文件\"><a class=\"anchor\" href=\"#nginx配置文件\">#</a> Nginx 配置文件</h4>\n<ul>\n<li>\n<p>在学习 Nginx 之前,要熟知它的配置文件,毕竟,下面需要做的所有配置(反向代理、负载均衡、动静分离等),都是基于它的配置文件。</p>\n</li>\n<li>\n<p>Nginx 默认的配置文件是在安装目录下的 conf 目录下,后续对 Nginx 的使用基本上都是对此配置文件进行相应的修改。完整的配置文件,可以看一下文章最后。修改过 nginx.conf 配置文件,记得要重启 Nginx 服务(☆☆☆☆☆)</p>\n</li>\n<li>\n<p>配置文件中有很多 #号,该符号表示注释内容,去掉所有以 #开头的段落,精简之后的配置文件内容如下(PS:其实注释掉的地方,都是一些功能的使用代码,需要用到的时候,取消注释即可):</p>\n</li>\n</ul>\n<pre><code class=\"language-yaml\"># 主进程叫master,负责管理子进程,子进程叫worker\n# worker_processes配置项表示开启几个业务进程,一般和cpu核数有关\nworker_processes 1;\n\nevents &#123;\n worker_connections 1024;\n&#125;\n\nhttp &#123;\n\t# include表示可以引入其他文件,此处表示引入http mime类型\n include mime.types;\n default_type application/octet-stream;\n sendfile on;\n keepalive_timeout 65;\n\n\t# 虚拟主机,可以配置多个\n server &#123;\n listen 80;\n server_name localhost;\n\n location / &#123;\n \t# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径\n root html;\n index index.html index.htm;\n &#125;\n\n error_page 500 502 503 504 /50x.html;\n location = /50x.html &#123;\n root html;\n &#125;\n\t&#125;\n&#125;\n</code></pre>\n<p>去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:</p>\n<ol>\n<li>全局块</li>\n</ol>\n<pre><code class=\"language-yaml\">worker_processes 1;\n</code></pre>\n<p>从配置文件开始到 events 块之间的内容,主要会设置一些影响 Nginx 服务器整体运行的配置指令,主要包括:配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。</p>\n<p>上面这行 worker_processes 配置,是 Nginx 服务器并发处理服务的关键配置,该值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的约束。</p>\n<ol start=\"2\">\n<li>events 块</li>\n</ol>\n<pre><code class=\"language-yaml\">events &#123;\n\tworker_connections 1024;\n&#125;\n</code></pre>\n<p>events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括:是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等</p>\n<p>上述例子就表示每个 work process 支持的最大连接数为 1024。这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。</p>\n<ol start=\"3\">\n<li>http 块</li>\n</ol>\n<pre><code clLine truncated
"content_html": "<h4 id=\"引言\"><a class=\"anchor\" href=\"#引言\">#</a> 引言</h4>\n<ul>\n<li>所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。</li>\n</ul>\n<h4 id=\"何为反向代理\"><a class=\"anchor\" href=\"#何为反向代理\">#</a> 何为反向代理</h4>\n<ul>\n<li>在介绍反向代理之前,先来了解一下正向代理。</li>\n</ul>\n<p>__正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/08/991a203be1ec82b36e1f326376617d40.png\" alt=\"991a203be1ec82b36e1f326376617d40.png\" /><br />\n__反向代理:__看下面原理图,就一目了然。其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/11/08/1c87e386a0ce624a3949bda443cf346d.png\" alt=\"1c87e386a0ce624a3949bda443cf346d.png\" /></p>\n<blockquote>\n<p>正向代理和反向代理的区别,一句话就是:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。</p>\n</blockquote>\n<h4 id=\"nginx配置文件\"><a class=\"anchor\" href=\"#nginx配置文件\">#</a> Nginx 配置文件</h4>\n<ul>\n<li>\n<p>在学习 Nginx 之前,要熟知它的配置文件,毕竟,下面需要做的所有配置(反向代理、负载均衡、动静分离等),都是基于它的配置文件。</p>\n</li>\n<li>\n<p>Nginx 默认的配置文件是在安装目录下的 conf 目录下,后续对 Nginx 的使用基本上都是对此配置文件进行相应的修改。完整的配置文件,可以看一下文章最后。修改过 nginx.conf 配置文件,记得要重启 Nginx 服务(☆☆☆☆☆)</p>\n</li>\n<li>\n<p>配置文件中有很多 #号,该符号表示注释内容,去掉所有以 #开头的段落,精简之后的配置文件内容如下(PS:其实注释掉的地方,都是一些功能的使用代码,需要用到的时候,取消注释即可):</p>\n</li>\n</ul>\n<figure class=\"highlight html\"><figcaption data-lang=\"HTML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre># 主进程叫master,负责管理子进程,子进程叫worker</pre></td></tr><tr><td data-num=\"2\"></td><td><pre># worker_processes配置项表示开启几个业务进程,一般和cpu核数有关</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>worker_processes 1;</pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre>events &#123;</pre></td></tr><tr><td data-num=\"6\"></td><td><pre> worker_connections 1024;</pre></td></tr><tr><td data-num=\"7\"></td><td><pre>&#125;</pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>http &#123;</pre></td></tr><tr><td data-num=\"10\"></td><td><pre>\t# include表示可以引入其他文件,此处表示引入http mime类型</pre></td></tr><tr><td data-num=\"11\"></td><td><pre> include mime.types;</pre></td></tr><tr><td data-num=\"12\"></td><td><pre> default_type application/octet-stream;</pre></td></tr><tr><td data-num=\"13\"></td><td><pre> sendfile on;</pre></td></tr><tr><td data-num=\"14\"></td><td><pre> keepalive_timeout 65;</pre></td></tr><tr><td data-num=\"15\"></td><td><pre></pre></td></tr><tr><td data-num=\"16\"></td><td><pre>\t# 虚拟主机,可以配置多个</pre></td></tr><tr><td data-num=\"17\"></td><td><pre> server &#123;</pre></td></tr><tr><td data-num=\"18\"></td><td><pre> listen 80;</pre></td></tr><tr><td data-num=\"19\"></td><td><pre> server_name localhost;</pre></td></tr><tr><td data-num=\"20\"></td><td><pre></pre></td></tr><tr><td data-num=\"21\"></td><td><pre> location / &#123;</pre></td></tr><tr><td data-num=\"22\"></td><td><pre> \t# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径</pre></td></tr><tr><td data-num=\"23\"></td><td><pre> root html;</pre></td></tr><tr><td data-num=\"24\"></td><td><pre> index index.html index.htm;</pre></td></tr><tr><td data-num=\"25\"></td><td><pre> &#125;</pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre> error_page 500 502 503 504 /50x.html;</pre></td></tr><tr><td data-num=\"28\"></td><td><pre> location = /50x.html &#123;</pre></td></tr><tr><td data-nuLine truncated
"tags": [
"Linux",
"服务",