Site updated: 2022-11-08 12:40:58
This commit is contained in:
100
atom.xml
100
atom.xml
@ -48,18 +48,51 @@ __反向代理:__看下面原理图,就一目了然。其实客户端对代
|
||||
<p>配置文件中有很多 #号,该符号表示注释内容,去掉所有以 #开头的段落,精简之后的配置文件内容如下(PS:其实注释掉的地方,都是一些功能的使用代码,需要用到的时候,取消注释即可):</p>
|
||||
</li>
|
||||
</ul>
|
||||
<figure class="highlight xml"><figcaption data-lang="XML"></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> # 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> # 虚拟主机,可以配置多个</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> # 路径匹配之后,哪个目录下去匹配相应的网页,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-num="29"></td><td><pre> root html;</pre></td></tr><tr><td data-num="30"></td><td><pre> &#125;</pre></td></tr><tr><td data-num="31"></td><td><pre> &#125;</pre></td></tr><tr><td data-num="32"></td><td><pre>&#125;</pre></td></tr></table></figure><p>去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:</p>
|
||||
<pre><code class="language-yaml"># 主进程叫master,负责管理子进程,子进程叫worker
|
||||
# worker_processes配置项表示开启几个业务进程,一般和cpu核数有关
|
||||
worker_processes 1;
|
||||
|
||||
events &#123;
|
||||
worker_connections 1024;
|
||||
&#125;
|
||||
|
||||
http &#123;
|
||||
# include表示可以引入其他文件,此处表示引入http mime类型
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
|
||||
# 虚拟主机,可以配置多个
|
||||
server &#123;
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
location / &#123;
|
||||
# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径
|
||||
root html;
|
||||
index index.html index.htm;
|
||||
&#125;
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html &#123;
|
||||
root html;
|
||||
&#125;
|
||||
&#125;
|
||||
&#125;
|
||||
</code></pre>
|
||||
<p>去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:</p>
|
||||
<ol>
|
||||
<li>全局块</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">worker_processes 1;
|
||||
<pre><code class="language-yaml">worker_processes 1;
|
||||
</code></pre>
|
||||
<p>从配置文件开始到 events 块之间的内容,主要会设置一些影响 Nginx 服务器整体运行的配置指令,主要包括:配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。</p>
|
||||
<p>上面这行 worker_processes 配置,是 Nginx 服务器并发处理服务的关键配置,该值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的约束。</p>
|
||||
<ol start="2">
|
||||
<li>events 块</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">events &#123;
|
||||
<pre><code class="language-yaml">events &#123;
|
||||
worker_connections 1024;
|
||||
&#125;
|
||||
</code></pre>
|
||||
@ -68,7 +101,7 @@ __反向代理:__看下面原理图,就一目了然。其实客户端对代
|
||||
<ol start="3">
|
||||
<li>http 块</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">http &#123;
|
||||
<pre><code class="language-yaml">http &#123;
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
sendfile on;
|
||||
@ -98,25 +131,24 @@ __反向代理:__看下面原理图,就一目了然。其实客户端对代
|
||||
<ol>
|
||||
<li>location 配置规则</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">location [ = | ~ | ~* | ^~ | @ ] /uri &#123;
|
||||
<pre><code class="language-yaml">location [ = | ~ | ~* | ^~ | @ ] /uri &#123;
|
||||
|
||||
&#125;
|
||||
|
||||
= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
|
||||
~:用于表示 uri 包含正则表达式,并且区分大小写。
|
||||
~*:用于表示 uri 包含正则表达式,并且不区分大小写。
|
||||
^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location
|
||||
后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
|
||||
@: &quot;@&quot; 定义一个命名的 location,使用在内部定向时,例如 error_page
|
||||
/uri:不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则
|
||||
/:通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
|
||||
= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
|
||||
~ :用于表示 uri 包含正则表达式,并且区分大小写。
|
||||
~* :用于表示 uri 包含正则表达式,并且不区分大小写。
|
||||
^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
|
||||
@ : &quot;@&quot; 定义一个命名的 location,使用在内部定向时,例如 error_page
|
||||
/uri :不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则
|
||||
/ :通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
|
||||
|
||||
* uri没有“/”结尾时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等。而有“/”结尾时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求
|
||||
☆☆☆☆☆ uri没有“/”结尾时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等。而有“/”结尾时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求
|
||||
</code></pre>
|
||||
<ol start="2">
|
||||
<li>proxy_pass 配置规则</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">url结尾加上了/,相当于是绝对路径,则Nginx不会把location中匹配的路径部分加入代理uri。
|
||||
<pre><code class="language-yaml">url结尾加上了/,相当于是绝对路径,则Nginx不会把location中匹配的路径部分加入代理uri。
|
||||
url结尾不加/,Nginx则会把匹配的路径部分加入代理uri。
|
||||
|
||||
情景1:
|
||||
@ -173,7 +205,7 @@ location /model &#123;
|
||||
&#125;
|
||||
</code></pre>
|
||||
<h4 id="nginx完整配置文件"><a class="anchor" href="#nginx完整配置文件">#</a> Nginx 完整配置文件</h4>
|
||||
<pre><code class="language-conf">#user nobody;
|
||||
<pre><code class="language-yaml">#user nobody;
|
||||
worker_processes 1;
|
||||
|
||||
#error_log logs/error.log;
|
||||
@ -335,7 +367,7 @@ sudo apt-get update &amp;&amp; sudo apt-get install yarn
|
||||
<ul>
|
||||
<li>配置 nginx (编译 /etc/nginx/sites-available/default)</li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">server &#123;
|
||||
<pre><code class="language-yaml">server &#123;
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
@ -535,7 +567,7 @@ ls b.txt &gt;&amp; output.txt #两个表达式效果一样的
|
||||
<li>证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度)</li>
|
||||
<li>http 跳转 https 配置</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">server &#123;
|
||||
<pre><code class="language-yaml">server &#123;
|
||||
if ($scheme = http) &#123;
|
||||
rewrite ^(.*)$ https://$host$1 permanent;
|
||||
&#125;
|
||||
@ -544,7 +576,7 @@ ls b.txt &gt;&amp; output.txt #两个表达式效果一样的
|
||||
<ol start="4">
|
||||
<li>web 端口监听配置</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">#极空间-web
|
||||
<pre><code class="language-yaml">#极空间-web
|
||||
server &#123;
|
||||
listen 10000 ssl http2; #ipv4
|
||||
listen [::]:10000 ssl http2; #ipv6
|
||||
@ -637,7 +669,7 @@ server &#123;
|
||||
<li>路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。)<br />
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/10/24/2022-10-24-19-29-06.jpg" alt="" /></li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">#青龙面板装载路径
|
||||
<pre><code class="language-yaml">#青龙面板装载路径
|
||||
/ql/data
|
||||
#博客装载路径(如果你不部署hexo博客可以不用配置)
|
||||
/root/.ssh #ssh证书文件(如果你不用把hexo推送到git上可以不用配置)
|
||||
@ -664,13 +696,13 @@ server &#123;
|
||||
<code>0 */3 * * *</code></li>
|
||||
<li>环境变量</li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">名称:JD_COOKIE
|
||||
<pre><code class="language-yaml">名称:JD_COOKIE
|
||||
值:web京东登陆后按F12在网络tab页中的请求内查找cookie,然后复制pt_key=到pt_pin=等
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>配置文件 (主要修改和添加以下配置)</li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">repo命令拉取脚本时需要拉取的文件后缀,直接写文件后缀名即可
|
||||
<pre><code class="language-yaml">repo命令拉取脚本时需要拉取的文件后缀,直接写文件后缀名即可
|
||||
RepoFileExtensions=&quot;js py ts&quot;
|
||||
钉钉(消息推送)
|
||||
export DD_BOT_TOKEN=
|
||||
@ -702,7 +734,7 @@ export JD_PAY_CONTRACT=true
|
||||
<ul>
|
||||
<li>依赖管理</li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">#nodejs依赖
|
||||
<pre><code class="language-yaml">#nodejs依赖
|
||||
crypto-js
|
||||
prettytable
|
||||
dotenv
|
||||
@ -795,7 +827,7 @@ curl -sS https://bootstrap.pypa.io/get-pip.py | python3
|
||||
<img data-src="https://file.jingxiyuan.cn/images/2022/10/21/2022-10-21-11-54-32204f14d87e95b59e.jpg" alt="" /></li>
|
||||
</ol>
|
||||
<h4 id="修改themeshoka配置"><a class="anchor" href="#修改themeshoka配置">#</a> 修改 Theme.Shoka 配置</h4>
|
||||
<pre><code class="language-yml">valine:
|
||||
<pre><code class="language-yaml">valine:
|
||||
appId: 粘贴5中获取的App ID #Your_appId
|
||||
appKey: 粘贴5中获取的App Key #Your_appkey
|
||||
placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言 # Comment box placeholder
|
||||
@ -859,7 +891,7 @@ curl -sS https://bootstrap.pypa.io/get-pip.py | python3
|
||||
<ul>
|
||||
<li>此处配置为 nginx 反向代理,配置完成后可在外网连接访问</li>
|
||||
</ul>
|
||||
<pre><code class="language-conf">stream &#123;
|
||||
<pre><code class="language-yaml">stream &#123;
|
||||
|
||||
#极空间-docker-mariadb
|
||||
upstream mariadb &#123;
|
||||
@ -1219,7 +1251,7 @@ sudo systemctl status ndo2db.service
|
||||
<ol>
|
||||
<li>基础配置</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">port 6379
|
||||
<pre><code class="language-yaml">port 6379
|
||||
requirepass 123456(密码,建议不设置)
|
||||
vm-enabled no (虚拟内存,内存够的情况下可以不使用)
|
||||
maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)
|
||||
@ -1247,7 +1279,7 @@ echo never &gt; /sys/kernel/mm/transparent_hugepage/enabled
|
||||
<ol start="4">
|
||||
<li>客户端缓冲区限制</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。
|
||||
<pre><code class="language-yaml">客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。
|
||||
可以三种不同客户端的方式进行设置:
|
||||
normal -&gt; 正常客户端
|
||||
slave -&gt; slave 和 MONITOR 客户端
|
||||
@ -1265,7 +1297,7 @@ client-output-buffer-limit pubsub 32mb 8mb 60
|
||||
<ol start="5">
|
||||
<li>持久化配置</li>
|
||||
</ol>
|
||||
<pre><code class="language-conf">---关闭RDB持久化---
|
||||
<pre><code class="language-yaml">---关闭RDB持久化---
|
||||
save &quot;&quot;
|
||||
默认配置如下:
|
||||
save 900 1 #900秒内有1次更新就持久化
|
||||
@ -1290,7 +1322,7 @@ min-slaves-to-write 3
|
||||
min-slaves-max-lag 10 设置当一个master端的可用slave少于N个,延迟时间大于M秒时,不接收写操作。
|
||||
</code></pre>
|
||||
<h4 id="从服务"><a class="anchor" href="#从服务">#</a> 从服务</h4>
|
||||
<pre><code class="language-conf">基本配置同主服务一致
|
||||
<pre><code class="language-yaml">基本配置同主服务一致
|
||||
slaveof 127.0.0.1 6379(主redis的ip和端口)
|
||||
masterauth 123456 (主redis的密码)
|
||||
可以通过slaveof no one命令将Slaver升级为Maste
|
||||
@ -1331,7 +1363,7 @@ sudo sysctl vm.overcommit_memory=1
|
||||
<link rel="alternate" href="https://blog.jingxiyuan.cn/2022/10/14/nginx%E5%85%81%E8%AE%B8%E8%B7%A8%E5%9F%9F%E8%8E%B7%E5%8F%96cookies%E6%96%B9%E6%B3%95/"/>
|
||||
<content type="html"><h4 id="使用场景"><a class="anchor" href="#使用场景">#</a> 使用场景</h4>
|
||||
<p> 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:</p>
|
||||
<pre><code class="language-conf">server &#123;
|
||||
<pre><code class="language-yaml">server &#123;
|
||||
listen port ssl http2;
|
||||
server_name xxx.com;
|
||||
ssl_certificate_key /xxx.key;
|
||||
@ -1469,7 +1501,7 @@ X-Frame-Options 三个参数:</p>
|
||||
<li>轮询(默认)</li>
|
||||
</ol>
|
||||
<p> <em>每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。</em></p>
|
||||
<pre><code class="language-conf">upstream my_server &#123;
|
||||
<pre><code class="language-yaml">upstream my_server &#123;
|
||||
server 192.168.0.2:8080;
|
||||
server 192.168.0.3:8080;
|
||||
&#125;
|
||||
@ -1489,7 +1521,7 @@ server &#123;
|
||||
<li>weight 权重策略</li>
|
||||
</ol>
|
||||
<p> <em>weight 代表权重,默认为 1,权重越高被分配的客户端越多,指定轮询几率。weight 和访问比率成正比,用于后端服务器性能不均的情况。</em></p>
|
||||
<pre><code class="language-conf">upstream my_server &#123;
|
||||
<pre><code class="language-yaml">upstream my_server &#123;
|
||||
server 192.168.0.2:8080 weight=1;
|
||||
server 192.168.0.3:8080 weight=2;
|
||||
&#125;
|
||||
@ -1509,7 +1541,7 @@ server &#123;
|
||||
<li>ip_hash</li>
|
||||
</ol>
|
||||
<p> <em>每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。</em></p>
|
||||
<pre><code class="language-conf">upstream my_server &#123;
|
||||
<pre><code class="language-yaml">upstream my_server &#123;
|
||||
ip_hash;
|
||||
server 192.168.0.2:8080;
|
||||
server 192.168.0.3:8080;
|
||||
@ -1530,7 +1562,7 @@ server &#123;
|
||||
<li>fair (第三方)</li>
|
||||
</ol>
|
||||
<p> <em>按后端服务器的响应时间来分配请求,响应时间短的优先分配。</em></p>
|
||||
<pre><code class="language-conf">upstream my_server &#123;
|
||||
<pre><code class="language-yaml">upstream my_server &#123;
|
||||
server 192.168.0.2:8080;
|
||||
server 192.168.0.3:8080;
|
||||
fair;
|
||||
|
Reference in New Issue
Block a user