diff --git a/2022/09/14/Hexo安装摸索/index.html b/2022/09/14/Hexo安装摸索/index.html
index 498e4c0ca..04a5182f7 100644
--- a/2022/09/14/Hexo安装摸索/index.html
+++ b/2022/09/14/Hexo安装摸索/index.html
@@ -1,4 +1,4 @@
-
<h4 id="使用场景"><a class="anchor" href="#使用场景">#</a> 使用场景</h4>
<p> 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:</p>
-<pre><code class="language-conf">server {
+<pre><code class="language-yaml">server {
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 {
+<pre><code class="language-yaml">upstream my_server {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
}
@@ -1489,7 +1521,7 @@ server {
<li>weight 权重策略</li>
</ol>
<p> <em>weight 代表权重,默认为 1,权重越高被分配的客户端越多,指定轮询几率。weight 和访问比率成正比,用于后端服务器性能不均的情况。</em></p>
-<pre><code class="language-conf">upstream my_server {
+<pre><code class="language-yaml">upstream my_server {
server 192.168.0.2:8080 weight=1;
server 192.168.0.3:8080 weight=2;
}
@@ -1509,7 +1541,7 @@ server {
<li>ip_hash</li>
</ol>
<p> <em>每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。</em></p>
-<pre><code class="language-conf">upstream my_server {
+<pre><code class="language-yaml">upstream my_server {
ip_hash;
server 192.168.0.2:8080;
server 192.168.0.3:8080;
@@ -1530,7 +1562,7 @@ server {
<li>fair (第三方)</li>
</ol>
<p> <em>按后端服务器的响应时间来分配请求,响应时间短的优先分配。</em></p>
-<pre><code class="language-conf">upstream my_server {
+<pre><code class="language-yaml">upstream my_server {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
fair;
diff --git a/categories/Linux/Shell/index.html b/categories/Linux/Shell/index.html
index 138867870..abb28e0f2 100644
--- a/categories/Linux/Shell/index.html
+++ b/categories/Linux/Shell/index.html
@@ -1 +1 @@
-分类:Shell | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:Shell | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/Linux/index.html b/categories/Linux/index.html
index bc76aa7cb..9c7ff7234 100644
--- a/categories/Linux/index.html
+++ b/categories/Linux/index.html
@@ -1 +1 @@
-分类:Linux | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
11-04
11-02
服务 ( 7 ) 10-18
10-17
10-14
10-06
09-27
09-23
\ No newline at end of file
+分类:Linux | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
11-04
11-02
服务 ( 7 ) 10-18
10-17
10-14
10-06
09-27
09-23
\ No newline at end of file
diff --git a/categories/Linux/服务/Nginx/index.html b/categories/Linux/服务/Nginx/index.html
index 6c9335fac..628d1febb 100644
--- a/categories/Linux/服务/Nginx/index.html
+++ b/categories/Linux/服务/Nginx/index.html
@@ -1 +1 @@
-分类:Nginx | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
10-14
10-06
09-27
09-23
\ No newline at end of file
+分类:Nginx | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
10-14
10-06
09-27
09-23
\ No newline at end of file
diff --git a/categories/Linux/服务/index.html b/categories/Linux/服务/index.html
index ac5fd8676..128c81eee 100644
--- a/categories/Linux/服务/index.html
+++ b/categories/Linux/服务/index.html
@@ -1 +1 @@
-分类:服务 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
10-18
10-17
10-14
10-06
09-27
09-23
\ No newline at end of file
+分类:服务 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-08
10-18
10-17
10-14
10-06
09-27
09-23
\ No newline at end of file
diff --git a/categories/Linux/项目部署/index.html b/categories/Linux/项目部署/index.html
index e4fcb8fab..2b6ffeb57 100644
--- a/categories/Linux/项目部署/index.html
+++ b/categories/Linux/项目部署/index.html
@@ -1 +1 @@
-分类:项目部署 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:项目部署 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/Windows/index.html b/categories/Windows/index.html
index af838a126..c81a3d3be 100644
--- a/categories/Windows/index.html
+++ b/categories/Windows/index.html
@@ -1 +1 @@
-分类:Windows | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 工具 ( 5 ) 11-01
10-31
10-12
10-11
09-22
\ No newline at end of file
+分类:Windows | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 工具 ( 5 ) 11-01
10-31
10-12
10-11
09-22
\ No newline at end of file
diff --git a/categories/Windows/工具/index.html b/categories/Windows/工具/index.html
index 37e8760d0..5bebbb5a2 100644
--- a/categories/Windows/工具/index.html
+++ b/categories/Windows/工具/index.html
@@ -1 +1 @@
-分类:工具 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-01
10-31
10-12
10-11
09-22
\ No newline at end of file
+分类:工具 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 11-01
10-31
10-12
10-11
09-22
\ No newline at end of file
diff --git a/categories/index.html b/categories/index.html
index dc4c1bbea..25f7735d6 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -1 +1 @@
-全部分类 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+全部分类 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/极空间/Docker/Hexo/index.html b/categories/极空间/Docker/Hexo/index.html
index 6a43dea74..b88122af4 100644
--- a/categories/极空间/Docker/Hexo/index.html
+++ b/categories/极空间/Docker/Hexo/index.html
@@ -1 +1 @@
-分类:Hexo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:Hexo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/极空间/Docker/index.html b/categories/极空间/Docker/index.html
index d4d4e2afc..6bdcc6168 100644
--- a/categories/极空间/Docker/index.html
+++ b/categories/极空间/Docker/index.html
@@ -1 +1 @@
-分类:Docker | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 10-22
10-21
10-21
10-20
09-26
09-17
09-16
09-14
\ No newline at end of file
+分类:Docker | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 10-22
10-21
10-21
10-20
09-26
09-17
09-16
09-14
\ No newline at end of file
diff --git a/categories/极空间/index.html b/categories/极空间/index.html
index 567857c63..baf12e438 100644
--- a/categories/极空间/index.html
+++ b/categories/极空间/index.html
@@ -1 +1 @@
-分类:极空间 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 10-27
10-22
10-21
10-21
10-20
09-26
09-17
09-16
09-14
\ No newline at end of file
+分类:极空间 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 10-27
10-22
10-21
10-21
10-20
09-26
09-17
09-16
09-14
\ No newline at end of file
diff --git a/categories/生活/index.html b/categories/生活/index.html
index 8e7ae0757..feb707140 100644
--- a/categories/生活/index.html
+++ b/categories/生活/index.html
@@ -1 +1 @@
-分类:生活 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 心情 ( 3 ) 11-03
10-19
09-28
09-21
\ No newline at end of file
+分类:生活 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 心情 ( 3 ) 11-03
10-19
09-28
09-21
\ No newline at end of file
diff --git a/categories/生活/心得体会/index.html b/categories/生活/心得体会/index.html
index c3bc54774..d41253534 100644
--- a/categories/生活/心得体会/index.html
+++ b/categories/生活/心得体会/index.html
@@ -1 +1 @@
-分类:心得体会 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:心得体会 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/生活/心情/index.html b/categories/生活/心情/index.html
index 3ba5b3028..a87b4fb46 100644
--- a/categories/生活/心情/index.html
+++ b/categories/生活/心情/index.html
@@ -1 +1 @@
-分类:心情 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:心情 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/feed.json b/feed.json
index 17b5f605f..49b1922ff 100644
--- a/feed.json
+++ b/feed.json
@@ -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": "# 引言 \n\n所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。 \n \n# 何为反向代理 \n\n在介绍反向代理之前,先来了解一下正向代理。 \n \n__正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。 \n \n__反向代理:__看下面原理图,就一目了然。其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。 \n
\n\n正向代理和反向代理的区别,一句话就是:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。
\n \n# Nginx 配置文件 \n\n\n在学习 Nginx 之前,要熟知它的配置文件,毕竟,下面需要做的所有配置(反向代理、负载均衡、动静分离等),都是基于它的配置文件。
\n \n\nNginx 默认的配置文件是在安装目录下的 conf 目录下,后续对 Nginx 的使用基本上都是对此配置文件进行相应的修改。完整的配置文件,可以看一下文章最后。修改过 nginx.conf 配置文件,记得要重启 Nginx 服务(☆☆☆☆☆)
\n \n\n配置文件中有很多 #号,该符号表示注释内容,去掉所有以 #开头的段落,精简之后的配置文件内容如下(PS:其实注释掉的地方,都是一些功能的使用代码,需要用到的时候,取消注释即可):
\n \n \n# 主进程叫master,负责管理子进程,子进程叫worker # worker_processes配置项表示开启几个业务进程,一般和cpu核数有关 worker_processes 1; events { worker_connections 1024; } http { \t# include表示可以引入其他文件,此处表示引入http mime类型 include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; \t# 虚拟主机,可以配置多个 server { listen 80; server_name localhost; location / { \t# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径 root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } \t} }
去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:
\n\n全局块 \n \nworker_processes 1;\n
\n从配置文件开始到 events 块之间的内容,主要会设置一些影响 Nginx 服务器整体运行的配置指令,主要包括:配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
\n上面这行 worker_processes 配置,是 Nginx 服务器并发处理服务的关键配置,该值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的约束。
\n\nevents 块 \n \nevents {\n\tworker_connections 1024;\n}\n
\nevents 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括:是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等
\n上述例子就表示每个 work process 支持的最大连接数为 1024。这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
\n\nhttp 块 \n \nhttp {\n include mime.types;\n default_type application/octet-stream;\n sendfile on;\n keepalive_timeout 65;\n\n server {\n listen 80;\n server_name localhost;\n\n location / {\n root html;\n index index.html index.htm;\n }\n\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n}\n
\n这部分是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块。下面的反向代理、动静分离、负载均衡都是在这部分中配置
\n__http 全局块:__http 全局块配置的指令包括:文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
\n__server 块:__这块和虚拟主机有密切关系,从用户角度看,虚拟主机和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
\n__location 块:__这块的主要作用是:基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
\n每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。(☆☆☆☆☆)
\n# 反向代理配置 \n\nlocation 配置规则 \n \nlocation [ = | ~ | ~* | ^~ | @ ] /uri {\n\n}\n\n= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。\n~:用于表示 uri 包含正则表达式,并且区分大小写。\n~*:用于表示 uri 包含正则表达式,并且不区分大小写。\n^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location\n后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。\n@: "@" 定义一个命名的 location,使用在内部定向时,例如 error_page\n/uri:不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则\n/:通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default\n\n* uri没有“/”结尾时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等。而有“/”结尾时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求\n
\n\nproxy_pass 配置规则 \n \nurl结尾加上了/,相当于是绝对路径,则Nginx不会把location中匹配的路径部分加入代理uri。\nurl结尾不加/,Nginx则会把匹配的路径部分加入代理uri。\n\n情景1:\nproxy_pass后有/ \n访问地址:http://localhost:8081/WCP.Service/wcp/modeladapter/download/asc.shtml\n最终代理:http://10.194.171.7:13082/modeladapter/download/asc.shtml\nlocation /WCP.Service/wcp/modeladapter/download/ {\n\tproxy_pass http://10.194.171.7:13082/modeladapter/download/;\n}\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/model/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/model/;\n}\n\n情景2:\nproxy_pass后有/\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n\n情景3:\nproxy_pass后没有/ \n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/model/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082;\n}\n\n情景4\nproxy_pass后没有/ \n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/AAAmodel/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/AAA;\n}\n\n情景5\nproxy_pass后有/\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n\n情景6\nproxy_pass后有/\n访问地址:http://localhost:8081/modelBBB/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n
\n# Nginx 完整配置文件 \n#user nobody;\nworker_processes 1;\n\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n\n#pid logs/nginx.pid;\n\nevents {\n worker_connections 1024;\n}\n\nhttp {\n include mime.types;\n default_type application/octet-stream;\n\n #log_format main '$remote_addr - $remote_user [$time_local] "$request" '\n # '$status $body_bytes_sent "$http_referer" '\n # '"$http_user_agent" "$http_x_forwarded_for"';\n\n #access_log logs/access.log main;\n\n sendfile on;\n #tcp_nopush on;\n\n #keepalive_timeout 0;\n keepalive_timeout 65;\n\n #gzip on;\n\n server {\n listen 80;\n server_name localhost;\n\n #charset koi8-r;\n\n #access_log logs/host.access.log main;\n\n location / {\n root html;\n index index.html index.htm;\n }\n\n #error_page 404 /404.html;\n\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n\n # proxy the PHP scripts to Apache listening on 127.0.0.1:80\n #\n #location ~ \\.php$ {\n # proxy_pass http://127.0.0.1;\n #}\n\n # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000\n #\n #location ~ \\.php$ {\n # root html;\n # fastcgi_pass 127.0.0.1:9000;\n # fastcgi_index index.php;\n # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;\n # include fastcgi_params;\n #}\n\n # deny access to .htaccess files, if Apache's document root\n # concurs with nginx's one\n #\n #location ~ /\\.ht {\n # deny all;\n #}\n }\n # another virtual host using mix of IP-, name-, and port-based configuration\n #\n #server {\n # listen 8000;\n # listen somename:8080;\n # server_name somename alias another.alias;\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n # HTTPS server\n #\n #server {\n # listen 443 ssl;\n # server_name localhost;\n # ssl_certificate cert.pem;\n # ssl_certificate_key cert.key;\n\n # ssl_session_cache shared:SSL:1m;\n # ssl_session_timeout 5m;\n\n # ssl_ciphers HIGH:!aNULL:!MD5;\n # ssl_prefer_server_ciphers on;\n\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n}\n
\n",
+ "content_html": "# 引言 \n\n所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。 \n \n# 何为反向代理 \n\n在介绍反向代理之前,先来了解一下正向代理。 \n \n__正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。 \n \n__反向代理:__看下面原理图,就一目了然。其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。 \n
\n\n正向代理和反向代理的区别,一句话就是:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。
\n \n# Nginx 配置文件 \n\n\n在学习 Nginx 之前,要熟知它的配置文件,毕竟,下面需要做的所有配置(反向代理、负载均衡、动静分离等),都是基于它的配置文件。
\n \n\nNginx 默认的配置文件是在安装目录下的 conf 目录下,后续对 Nginx 的使用基本上都是对此配置文件进行相应的修改。完整的配置文件,可以看一下文章最后。修改过 nginx.conf 配置文件,记得要重启 Nginx 服务(☆☆☆☆☆)
\n \n\n配置文件中有很多 #号,该符号表示注释内容,去掉所有以 #开头的段落,精简之后的配置文件内容如下(PS:其实注释掉的地方,都是一些功能的使用代码,需要用到的时候,取消注释即可):
\n \n \n# 主进程叫master,负责管理子进程,子进程叫worker\n# worker_processes配置项表示开启几个业务进程,一般和cpu核数有关\nworker_processes 1;\n\nevents {\n worker_connections 1024;\n}\n\nhttp {\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 {\n listen 80;\n server_name localhost;\n\n location / {\n \t# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径\n root html;\n index index.html index.htm;\n }\n\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n\t}\n}\n
\n去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:
\n\n全局块 \n \nworker_processes 1;\n
\n从配置文件开始到 events 块之间的内容,主要会设置一些影响 Nginx 服务器整体运行的配置指令,主要包括:配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
\n上面这行 worker_processes 配置,是 Nginx 服务器并发处理服务的关键配置,该值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的约束。
\n\nevents 块 \n \nevents {\n\tworker_connections 1024;\n}\n
\nevents 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括:是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等
\n上述例子就表示每个 work process 支持的最大连接数为 1024。这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
\n\nhttp 块 \n \nhttp {\n include mime.types;\n default_type application/octet-stream;\n sendfile on;\n keepalive_timeout 65;\n\n server {\n listen 80;\n server_name localhost;\n\n location / {\n root html;\n index index.html index.htm;\n }\n\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n}\n
\n这部分是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块。下面的反向代理、动静分离、负载均衡都是在这部分中配置
\n__http 全局块:__http 全局块配置的指令包括:文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
\n__server 块:__这块和虚拟主机有密切关系,从用户角度看,虚拟主机和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
\n__location 块:__这块的主要作用是:基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
\n每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。(☆☆☆☆☆)
\n# 反向代理配置 \n\nlocation 配置规则 \n \nlocation [ = | ~ | ~* | ^~ | @ ] /uri {\n\n}\n\n= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。\n~ :用于表示 uri 包含正则表达式,并且区分大小写。\n~* :用于表示 uri 包含正则表达式,并且不区分大小写。\n^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。\n@ : "@" 定义一个命名的 location,使用在内部定向时,例如 error_page\n/uri :不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则\n/ :通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default\n\n☆☆☆☆☆ uri没有“/”结尾时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等。而有“/”结尾时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求\n
\n\nproxy_pass 配置规则 \n \nurl结尾加上了/,相当于是绝对路径,则Nginx不会把location中匹配的路径部分加入代理uri。\nurl结尾不加/,Nginx则会把匹配的路径部分加入代理uri。\n\n情景1:\nproxy_pass后有/ \n访问地址:http://localhost:8081/WCP.Service/wcp/modeladapter/download/asc.shtml\n最终代理:http://10.194.171.7:13082/modeladapter/download/asc.shtml\nlocation /WCP.Service/wcp/modeladapter/download/ {\n\tproxy_pass http://10.194.171.7:13082/modeladapter/download/;\n}\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/model/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/model/;\n}\n\n情景2:\nproxy_pass后有/\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n\n情景3:\nproxy_pass后没有/ \n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/model/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082;\n}\n\n情景4\nproxy_pass后没有/ \n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/AAAmodel/asc.shtml\nlocation /model/ {\n\tproxy_pass http://127.0.0.1:8082/AAA;\n}\n\n情景5\nproxy_pass后有/\n访问地址:http://localhost:8081/model/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n\n情景6\nproxy_pass后有/\n访问地址:http://localhost:8081/modelBBB/asc.shtml\n最终代理:http://127.0.0.1:8082/asc.shtml\nlocation /model {\n\tproxy_pass http://127.0.0.1:8082/;\n}\n
\n# Nginx 完整配置文件 \n#user nobody;\nworker_processes 1;\n\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n\n#pid logs/nginx.pid;\n\nevents {\n worker_connections 1024;\n}\n\nhttp {\n include mime.types;\n default_type application/octet-stream;\n\n #log_format main '$remote_addr - $remote_user [$time_local] "$request" '\n # '$status $body_bytes_sent "$http_referer" '\n # '"$http_user_agent" "$http_x_forwarded_for"';\n\n #access_log logs/access.log main;\n\n sendfile on;\n #tcp_nopush on;\n\n #keepalive_timeout 0;\n keepalive_timeout 65;\n\n #gzip on;\n\n server {\n listen 80;\n server_name localhost;\n\n #charset koi8-r;\n\n #access_log logs/host.access.log main;\n\n location / {\n root html;\n index index.html index.htm;\n }\n\n #error_page 404 /404.html;\n\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n\n # proxy the PHP scripts to Apache listening on 127.0.0.1:80\n #\n #location ~ \\.php$ {\n # proxy_pass http://127.0.0.1;\n #}\n\n # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000\n #\n #location ~ \\.php$ {\n # root html;\n # fastcgi_pass 127.0.0.1:9000;\n # fastcgi_index index.php;\n # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;\n # include fastcgi_params;\n #}\n\n # deny access to .htaccess files, if Apache's document root\n # concurs with nginx's one\n #\n #location ~ /\\.ht {\n # deny all;\n #}\n }\n # another virtual host using mix of IP-, name-, and port-based configuration\n #\n #server {\n # listen 8000;\n # listen somename:8080;\n # server_name somename alias another.alias;\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n # HTTPS server\n #\n #server {\n # listen 443 ssl;\n # server_name localhost;\n # ssl_certificate cert.pem;\n # ssl_certificate_key cert.key;\n\n # ssl_session_cache shared:SSL:1m;\n # ssl_session_timeout 5m;\n\n # ssl_ciphers HIGH:!aNULL:!MD5;\n # ssl_prefer_server_ciphers on;\n\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n}\n
\n",
"tags": [
"Linux",
"服务",
@@ -25,7 +25,7 @@
"url": "https://blog.jingxiyuan.cn/2022/11/04/%E8%AE%B0%E4%B8%80%E6%AC%A1Vue%E9%A1%B9%E7%9B%AE%E7%9A%84%E9%83%A8%E7%BD%B2/",
"title": "记一次Vue项目的部署",
"date_published": "2022-11-04T07:21:00.000Z",
- "content_html": "# 描述 \n\n今天需要把一个 web 项目部署到 ubuntu 服务器上,结果直接使用 apt install nodejs 安装的 nodejs 版本过低,导致编译失败。最后通过查看官网文档获取到了 ubuntu 最新 nodejs 的安装命令。 \n \n# 过程 \n\n卸载旧的 nodejs(此命令会卸载掉相关依赖包) \n \nsudo apt autoremove --purge nodejs\n
\n\ncurl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt-get install -y nodejs\n
\n\ncurl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null\n\necho "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list\n\nsudo apt-get update && sudo apt-get install yarn\n
\n\nyarn install\n
\n\n编译(到项目根目录执行,完成后会生成 dist 目录) \n \nyarn build\n
\n\napt install nginx\n
\n\n配置 nginx (编译 /etc/nginx/sites-available/default) \n \nserver {\n listen 80 default_server;\n listen [::]:80 default_server;\n\n # SSL configuration\n #\n # listen 443 ssl default_server;\n # listen [::]:443 ssl default_server;\n #\n # Note: You should disable gzip for SSL traffic.\n # See: https://bugs.debian.org/773332\n #\n # Read up on ssl_ciphers to ensure a secure configuration.\n # See: https://bugs.debian.org/765782\n #\n # Self signed certs generated by the ssl-cert package\n # Don't use them in a production server!\n #\n # include snippets/snakeoil.conf;\n\n root /var/www/html;\n\n # Add index.php to the list if you are using PHP\n index index.html index.htm index.nginx-debian.html;\n\n server_name _;\n\n location /api {\n proxy_pass http://localhost:8080;\n }\n\n location / {\n # First attempt to serve request as file, then\n # as directory, then fall back to displaying a 404.\n #try_files $uri $uri/ =404;\n alias /opt/codes/dayu-tools-arbitrage-web/dist/;\n try_files $uri $uri/ @router;\n index index.html index.htm;\n }\n\n location @router {\n rewrite ^.*$ /index.html last;\n }\n}\n\n
\n# 其它 \n\nrm dist -fr\n\nyarn build\n
\n",
+ "content_html": "# 描述 \n\n今天需要把一个 web 项目部署到 ubuntu 服务器上,结果直接使用 apt install nodejs 安装的 nodejs 版本过低,导致编译失败。最后通过查看官网文档获取到了 ubuntu 最新 nodejs 的安装命令。 \n \n# 过程 \n\n卸载旧的 nodejs(此命令会卸载掉相关依赖包) \n \nsudo apt autoremove --purge nodejs\n
\n\ncurl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt-get install -y nodejs\n
\n\ncurl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null\n\necho "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list\n\nsudo apt-get update && sudo apt-get install yarn\n
\n\nyarn install\n
\n\n编译(到项目根目录执行,完成后会生成 dist 目录) \n \nyarn build\n
\n\napt install nginx\n
\n\n配置 nginx (编译 /etc/nginx/sites-available/default) \n \nserver {\n listen 80 default_server;\n listen [::]:80 default_server;\n\n # SSL configuration\n #\n # listen 443 ssl default_server;\n # listen [::]:443 ssl default_server;\n #\n # Note: You should disable gzip for SSL traffic.\n # See: https://bugs.debian.org/773332\n #\n # Read up on ssl_ciphers to ensure a secure configuration.\n # See: https://bugs.debian.org/765782\n #\n # Self signed certs generated by the ssl-cert package\n # Don't use them in a production server!\n #\n # include snippets/snakeoil.conf;\n\n root /var/www/html;\n\n # Add index.php to the list if you are using PHP\n index index.html index.htm index.nginx-debian.html;\n\n server_name _;\n\n location /api {\n proxy_pass http://localhost:8080;\n }\n\n location / {\n # First attempt to serve request as file, then\n # as directory, then fall back to displaying a 404.\n #try_files $uri $uri/ =404;\n alias /opt/codes/dayu-tools-arbitrage-web/dist/;\n try_files $uri $uri/ @router;\n index index.html index.htm;\n }\n\n location @router {\n rewrite ^.*$ /index.html last;\n }\n}\n\n
\n# 其它 \n\nrm dist -fr\n\nyarn build\n
\n",
"tags": [
"Linux",
"项目部署",
@@ -90,7 +90,7 @@
"url": "https://blog.jingxiyuan.cn/2022/10/27/%E6%9E%81%E7%A9%BA%E9%97%B4web%E7%AB%AFhttps%E7%9B%B4%E8%BF%9Enginx%E9%85%8D%E7%BD%AE/",
"title": "极空间web端https直连nginx配置",
"date_published": "2022-10-27T05:34:00.000Z",
- "content_html": "# 介绍 \n\nip 直连一般都映射了 5055, 但是直接访问 5055 极空间只提供了 http 协议,如果希望使用 https 协议则必须使用其它端口进行访问。以下方案采用 nginx 反向代理实现,端口使用 10000 举例。 \n \n \n# 配置 \n\n需要先把 10000 端口在路由器上做好映射。 \n证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度) \nhttp 跳转 https 配置 \n \nserver {\n\t\tif ($scheme = http) {\n\t\t\trewrite ^(.*)$ https://$host$1 permanent;\n\t\t}\n}\n
\n\nweb 端口监听配置 \n \n#极空间-web\nserver {\n\tlisten 10000 ssl http2; #ipv4\n\tlisten [::]:10000 ssl http2; #ipv6\n\tserver_name xxx.xxx.com; #填写自己的域名,主域名或者子域名\n\n\t#include /etc/nginx/conf.d/ssl/ssl_common.conf;\n\tssl_certificate_key /etc/nginx/conf.d/ssl/xxx.key; #加密证书\n\tssl_certificate /etc/nginx/conf.d/ssl/xxx.pem; #加密证书\n\tssl_session_timeout 1d;\n\tssl_session_cache shared:MozSSL:10m;\n\tssl_session_tickets off;\n\tssl_protocols TLSv1.2 TLSv1.3;\n\tssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;\n\tssl_prefer_server_ciphers on;\n\n #开启OCSP stapling\n\tssl_stapling on;\n\tssl_stapling_verify on;\n\n\tclient_max_body_size 128M;\n\n\tadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";\n\n\tproxy_send_timeout 180s; #设置发送超时时间\n proxy_read_timeout 180s; #设置读取超时时间\n\n\t# Prevent Information leaks\n\tproxy_hide_header X-Powered-By;\n\tproxy_hide_header Server;\n\tproxy_hide_header X-AspNetMvc-Version;\n\tproxy_hide_header X-AspNet-Version;\n\n\t# http security headers\n\tadd_header X-Content-Type-Options nosniff;\n\tadd_header Pragma no-cache;\n\tadd_header Cache-Control no-store;\n\tadd_header X-XSS-Protection "1; mode=block";\n\tadd_header Referrer-Policy origin-when-cross-origin;\n\tadd_header X-Permitted-Cross-Domain-Policies none;\n add_header X-Frame-Options SAMEORIGIN; #允许同域嵌套\n\n\t# Add Security cookie flags\n\tproxy_cookie_path ~(.*) "$1; SameSite=strict; secure; httponly";\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_intercept_errors on;\n\t\tproxy_max_temp_file_size 0;\n\t\tproxy_set_header Host $host;\n\t\tproxy_set_header X-Real-IP $remote_addr;\n\t\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t\tproxy_set_header X-Forwarded-Proto $scheme;\n \n\t\tproxy_pass http://极空间内网ip:5055; #这里设置你自己要跳转的局域网应用;\n\t\tproxy_redirect http://域名:5055/home https://域名:10000/home; #极空间在登陆后会跳转到http协议的5055端口,所以要在此替换为https协议的10000端口\n\t}\n\n\terror_page 500 502 503 504 /500.html;\n\terror_page 400 404 /500.html;\n\tlocation = /500.html {\n\t\troot /usr/share/nginx/html/; #错误html\n\t}\n}\n
\n# 问题 \n\n需要开启允许嵌套否则登陆后所有应用都是拒绝访问 \n需要配置 proxy_redirect 替换响应 url,否则会跳转到默认 http 协议的 5055 端口 \n如果配置 proxy_redirect 后无效可能需要清除浏览器缓存(F12 - 网络 - 右键点击 url 区域 - 清除浏览器缓存) \n \n",
+ "content_html": "# 介绍 \n\nip 直连一般都映射了 5055, 但是直接访问 5055 极空间只提供了 http 协议,如果希望使用 https 协议则必须使用其它端口进行访问。以下方案采用 nginx 反向代理实现,端口使用 10000 举例。 \n \n \n# 配置 \n\n需要先把 10000 端口在路由器上做好映射。 \n证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度) \nhttp 跳转 https 配置 \n \nserver {\n\t\tif ($scheme = http) {\n\t\t\trewrite ^(.*)$ https://$host$1 permanent;\n\t\t}\n}\n
\n\nweb 端口监听配置 \n \n#极空间-web\nserver {\n\tlisten 10000 ssl http2; #ipv4\n\tlisten [::]:10000 ssl http2; #ipv6\n\tserver_name xxx.xxx.com; #填写自己的域名,主域名或者子域名\n\n\t#include /etc/nginx/conf.d/ssl/ssl_common.conf;\n\tssl_certificate_key /etc/nginx/conf.d/ssl/xxx.key; #加密证书\n\tssl_certificate /etc/nginx/conf.d/ssl/xxx.pem; #加密证书\n\tssl_session_timeout 1d;\n\tssl_session_cache shared:MozSSL:10m;\n\tssl_session_tickets off;\n\tssl_protocols TLSv1.2 TLSv1.3;\n\tssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;\n\tssl_prefer_server_ciphers on;\n\n #开启OCSP stapling\n\tssl_stapling on;\n\tssl_stapling_verify on;\n\n\tclient_max_body_size 128M;\n\n\tadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";\n\n\tproxy_send_timeout 180s; #设置发送超时时间\n proxy_read_timeout 180s; #设置读取超时时间\n\n\t# Prevent Information leaks\n\tproxy_hide_header X-Powered-By;\n\tproxy_hide_header Server;\n\tproxy_hide_header X-AspNetMvc-Version;\n\tproxy_hide_header X-AspNet-Version;\n\n\t# http security headers\n\tadd_header X-Content-Type-Options nosniff;\n\tadd_header Pragma no-cache;\n\tadd_header Cache-Control no-store;\n\tadd_header X-XSS-Protection "1; mode=block";\n\tadd_header Referrer-Policy origin-when-cross-origin;\n\tadd_header X-Permitted-Cross-Domain-Policies none;\n add_header X-Frame-Options SAMEORIGIN; #允许同域嵌套\n\n\t# Add Security cookie flags\n\tproxy_cookie_path ~(.*) "$1; SameSite=strict; secure; httponly";\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_intercept_errors on;\n\t\tproxy_max_temp_file_size 0;\n\t\tproxy_set_header Host $host;\n\t\tproxy_set_header X-Real-IP $remote_addr;\n\t\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t\tproxy_set_header X-Forwarded-Proto $scheme;\n \n\t\tproxy_pass http://极空间内网ip:5055; #这里设置你自己要跳转的局域网应用;\n\t\tproxy_redirect http://域名:5055/home https://域名:10000/home; #极空间在登陆后会跳转到http协议的5055端口,所以要在此替换为https协议的10000端口\n\t}\n\n\terror_page 500 502 503 504 /500.html;\n\terror_page 400 404 /500.html;\n\tlocation = /500.html {\n\t\troot /usr/share/nginx/html/; #错误html\n\t}\n}\n
\n# 问题 \n\n需要开启允许嵌套否则登陆后所有应用都是拒绝访问 \n需要配置 proxy_redirect 替换响应 url,否则会跳转到默认 http 协议的 5055 端口 \n如果配置 proxy_redirect 后无效可能需要清除浏览器缓存(F12 - 网络 - 右键点击 url 区域 - 清除浏览器缓存) \n \n",
"tags": [
"极空间",
"nginx",
@@ -104,7 +104,7 @@
"url": "https://blog.jingxiyuan.cn/2022/10/22/%E6%9E%81%E7%A9%BA%E9%97%B4Docker%E7%89%88%E9%9D%92%E9%BE%99%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/",
"title": "极空间Docker版青龙面板安装与配置",
"date_published": "2022-10-22T02:44:00.000Z",
- "content_html": "# 介绍 \n\n青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 \n \n# 安装 \n\n本文使用的是 whyour/qinglong 的镜像。 \n路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。) \n \n \n#青龙面板装载路径\n/ql/data\n#博客装载路径(如果你不部署hexo博客可以不用配置)\n/root/.ssh #ssh证书文件(如果你不用把hexo推送到git上可以不用配置)\n/blog #hexo博客编译目录\n/blog/nginx_blog #nginx上放置博客的目录(例如:/Docker/nginx/html/blog)\n
\n\n端口 \n \n 4000端口是hexo-admin使用的,如果你不用可以不配置
\n环境 \n \n登录 \n地址:http:// 极空间 IP:5700 \n 默认账号:admin \n 默认密码:admin \n \n# 配置 \n\n我主要用青龙面板跑京东的脚本,所以也只介绍相关的配置方法 \n定时任务 (我使用的是 KingRan/KR 的集合库,以下是拉取命令) \n ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp|wskey" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
\n定时规则(我是每 3 小时拉取一次,不要拉取太频繁否则可能被封) \n 0 */3 * * *
\n环境变量 \n \n名称:JD_COOKIE\n值:web京东登陆后按F12在网络tab页中的请求内查找cookie,然后复制pt_key=到pt_pin=等\n
\n\nrepo命令拉取脚本时需要拉取的文件后缀,直接写文件后缀名即可\nRepoFileExtensions="js py ts"\n钉钉(消息推送)\nexport DD_BOT_TOKEN=\nexport DD_BOT_SECRET=\n##开卡\nexport guaopencard_All="true"\nexport guaopencard_addSku_All="true"\nexport guaopencardRun_All="true"\nexport guaopencard_draw="true"\nexport JD_TRY="true"\nexport exjxbeans="true"\nexport DY_OPENALL="true"\n#抽奖\nexport opencard_draw=3\n#开启脚本依赖文件缺失修复\nexport ec_fix_dep="true" \n#开启脚本依赖文件更新\nexport ec_re_dep="true" \n#清空购物车\nexport JD_CART_REMOVE="true"\nexport JD_CART="true"\n#去掉多余的双十一红包脚本\nexport FLCODE=''\n#加购物车抽奖\nexport RUN_CAR=true\n#停用小额免密支付\nexport JD_PAY_CONTRACT=true\n
\n\n#nodejs依赖\ncrypto-js\t\nprettytable\t\ndotenv\t\njsdom\t\ndate-fns\t\ntough-cookie\t\ntslib\t\nws@7.4.3\t\nts-md5\t\njsdom -g\t\njieba\t\nfs\t\nform-data\t\njson5\t\nglobal-agent\t\npng-js\t\n@types/node\t\nrequire\t\ntypescript\t\njs-base64\t\naxios\n#pythone依赖\nrequests\t\ncanvas\t\nping3\t\njieba\t\naiohttp\t\nPyExecJS\n#Linux依赖\nbizCode\nbizMsg\nlxml\n
\n# 其它 \n#配置国内源\npip config --global set global.index-url https://mirrors.aliyun.com/pypi/simple/\npip config --global set install.trusted-host https://mirrors.aliyun.com\n\n#升级pip\npip install --upgrade pip\n\n#更新青龙\nql update\n\n#已知要安装的依赖(不安装部分脚本任务会失败)\npnpm install ds\n\n#一键安装所有依赖(基于Faker一键脚本安装的青龙\n可通过执行/ql/data/scripts下的QLDependency.sh脚本安装,如脚本已经更新则通过下面命令执行\ncurl -fsSL https://git.metauniverse-cn.com/https://raw.githubusercontent.com/shufflewzc/QLDependency/main/Shell/QLOneKeyDependency.sh | sh\n\n#一般出现这种错误:(缺依赖)\nError: Cannot find module 'xx'\n执行pnpm install xxx\n\n#一般出现这种错误:(缺文件)\nError: Cannot find module './xx'\n那就是拉库命令不完整,请检查或复制完整的拉库命\n\n#Python3依赖安装失败修复(基于Faker一键脚本安装的青龙)\ncurl -sS https://bootstrap.pypa.io/get-pip.py | python3\n
\n",
+ "content_html": "# 介绍 \n\n青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 \n \n# 安装 \n\n本文使用的是 whyour/qinglong 的镜像。 \n路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。) \n \n \n#青龙面板装载路径\n/ql/data\n#博客装载路径(如果你不部署hexo博客可以不用配置)\n/root/.ssh #ssh证书文件(如果你不用把hexo推送到git上可以不用配置)\n/blog #hexo博客编译目录\n/blog/nginx_blog #nginx上放置博客的目录(例如:/Docker/nginx/html/blog)\n
\n\n端口 \n \n 4000端口是hexo-admin使用的,如果你不用可以不配置
\n环境 \n \n登录 \n地址:http:// 极空间 IP:5700 \n 默认账号:admin \n 默认密码:admin \n \n# 配置 \n\n我主要用青龙面板跑京东的脚本,所以也只介绍相关的配置方法 \n定时任务 (我使用的是 KingRan/KR 的集合库,以下是拉取命令) \n ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp|wskey" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
\n定时规则(我是每 3 小时拉取一次,不要拉取太频繁否则可能被封) \n 0 */3 * * *
\n环境变量 \n \n名称:JD_COOKIE\n值:web京东登陆后按F12在网络tab页中的请求内查找cookie,然后复制pt_key=到pt_pin=等\n
\n\nrepo命令拉取脚本时需要拉取的文件后缀,直接写文件后缀名即可\nRepoFileExtensions="js py ts"\n钉钉(消息推送)\nexport DD_BOT_TOKEN=\nexport DD_BOT_SECRET=\n##开卡\nexport guaopencard_All="true"\nexport guaopencard_addSku_All="true"\nexport guaopencardRun_All="true"\nexport guaopencard_draw="true"\nexport JD_TRY="true"\nexport exjxbeans="true"\nexport DY_OPENALL="true"\n#抽奖\nexport opencard_draw=3\n#开启脚本依赖文件缺失修复\nexport ec_fix_dep="true" \n#开启脚本依赖文件更新\nexport ec_re_dep="true" \n#清空购物车\nexport JD_CART_REMOVE="true"\nexport JD_CART="true"\n#去掉多余的双十一红包脚本\nexport FLCODE=''\n#加购物车抽奖\nexport RUN_CAR=true\n#停用小额免密支付\nexport JD_PAY_CONTRACT=true\n
\n\n#nodejs依赖\ncrypto-js\t\nprettytable\t\ndotenv\t\njsdom\t\ndate-fns\t\ntough-cookie\t\ntslib\t\nws@7.4.3\t\nts-md5\t\njsdom -g\t\njieba\t\nfs\t\nform-data\t\njson5\t\nglobal-agent\t\npng-js\t\n@types/node\t\nrequire\t\ntypescript\t\njs-base64\t\naxios\n#pythone依赖\nrequests\t\ncanvas\t\nping3\t\njieba\t\naiohttp\t\nPyExecJS\n#Linux依赖\nbizCode\nbizMsg\nlxml\n
\n# 其它 \n#配置国内源\npip config --global set global.index-url https://mirrors.aliyun.com/pypi/simple/\npip config --global set install.trusted-host https://mirrors.aliyun.com\n\n#升级pip\npip install --upgrade pip\n\n#更新青龙\nql update\n\n#已知要安装的依赖(不安装部分脚本任务会失败)\npnpm install ds\n\n#一键安装所有依赖(基于Faker一键脚本安装的青龙\n可通过执行/ql/data/scripts下的QLDependency.sh脚本安装,如脚本已经更新则通过下面命令执行\ncurl -fsSL https://git.metauniverse-cn.com/https://raw.githubusercontent.com/shufflewzc/QLDependency/main/Shell/QLOneKeyDependency.sh | sh\n\n#一般出现这种错误:(缺依赖)\nError: Cannot find module 'xx'\n执行pnpm install xxx\n\n#一般出现这种错误:(缺文件)\nError: Cannot find module './xx'\n那就是拉库命令不完整,请检查或复制完整的拉库命\n\n#Python3依赖安装失败修复(基于Faker一键脚本安装的青龙)\ncurl -sS https://bootstrap.pypa.io/get-pip.py | python3\n
\n",
"tags": [
"极空间",
"Docker",
@@ -118,7 +118,7 @@
"url": "https://blog.jingxiyuan.cn/2022/10/21/Hexo-Theme-Shoka-Valine%E8%AF%84%E8%AE%BA%E9%85%8D%E7%BD%AE/",
"title": "Hexo + Theme.Shoka + Valine评论配置",
"date_published": "2022-10-21T03:48:00.000Z",
- "content_html": "\nvaline 评论需要 LeanCloud 支持 \n \n# LeanCloud 注册 \n\n到 LeanCloud 网站完成注册。 \n创建应用。 \n \n名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 \n \n点击配置按钮进行配置。 \n \n点击设置 - 应用凭证可获取 App ID 和 App Key \n \n点击设置 - 安全中心根据自己的需求配置 \n \n \n# 修改 Theme.Shoka 配置 \nvaline:\n appId: 粘贴5中获取的App ID #Your_appId\n appKey: 粘贴5中获取的App Key #Your_appkey\n placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言 # Comment box placeholder\n avatar: mp #默认头像设置 Gravatar style : mp, identicon, monsterid, wavatar, robohash, retro\n pageSize: 10 # Pagination size\n lang: zh-CN\n visitor: true # Article reading statistic 这个要设置为false,以免与 leancloud_visitors 突冲 \n NoRecordIP: false # Whether to record the commenter IP\n serverURLs: # When the custom domain name is enabled, fill it in here (it will be detected automatically by default, no need to fill in)\n powerMode: true\n tagMeta:\n visitor: 新朋友\n master: 博主\n friend: 小伙伴\n investor: 金主粑粑\n tagColor:\n master: "var(--color-orange)"\n friend: "var(--color-aqua)"\n investor: "var(--color-pink)"\n tagMember:\n master:\n # - hash of master@email.com\n # - hash of master2@email.com\n friend:\n # - hash of friend@email.com\n # - hash of friend2@email.com\n investor:\n # - hash of investor1@email.com\n
\n",
+ "content_html": "\nvaline 评论需要 LeanCloud 支持 \n \n# LeanCloud 注册 \n\n到 LeanCloud 网站完成注册。 \n创建应用。 \n \n名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 \n \n点击配置按钮进行配置。 \n \n点击设置 - 应用凭证可获取 App ID 和 App Key \n \n点击设置 - 安全中心根据自己的需求配置 \n \n \n# 修改 Theme.Shoka 配置 \nvaline:\n appId: 粘贴5中获取的App ID #Your_appId\n appKey: 粘贴5中获取的App Key #Your_appkey\n placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言 # Comment box placeholder\n avatar: mp #默认头像设置 Gravatar style : mp, identicon, monsterid, wavatar, robohash, retro\n pageSize: 10 # Pagination size\n lang: zh-CN\n visitor: true # Article reading statistic 这个要设置为false,以免与 leancloud_visitors 突冲 \n NoRecordIP: false # Whether to record the commenter IP\n serverURLs: # When the custom domain name is enabled, fill it in here (it will be detected automatically by default, no need to fill in)\n powerMode: true\n tagMeta:\n visitor: 新朋友\n master: 博主\n friend: 小伙伴\n investor: 金主粑粑\n tagColor:\n master: "var(--color-orange)"\n friend: "var(--color-aqua)"\n investor: "var(--color-pink)"\n tagMember:\n master:\n # - hash of master@email.com\n # - hash of master2@email.com\n friend:\n # - hash of friend@email.com\n # - hash of friend2@email.com\n investor:\n # - hash of investor1@email.com\n
\n",
"tags": [
"极空间",
"Docker",
@@ -135,7 +135,7 @@
"url": "https://blog.jingxiyuan.cn/2022/10/21/%E6%9E%81%E7%A9%BA%E9%97%B4Docker%E7%89%88mariadb%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/",
"title": "极空间Docker版mariadb安装与配置",
"date_published": "2022-10-21T01:06:00.000Z",
- "content_html": "# 介绍 \n\nmariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 \n \n# 安装 \n\n本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 \n配置文件映射 \n \n端口 \n \n环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) \n \n到此已经可以在内网使用了,连接方法同 mysql 一致 \n \n# 配置 \n\n此处配置为 nginx 反向代理,配置完成后可在外网连接访问 \n \nstream {\n\t\n\t#极空间-docker-mariadb\n\tupstream mariadb {\n\t\thash $remote_addr consistent;\n\t\tserver mariadb的ip:端口;\n\t}\n\n\tserver {\n\t\tlisten 监听端口;\n\n\t\tproxy_connect_timeout 30s;\n\t\tproxy_timeout 300s;\n\t\tproxy_pass mariadb;\n\t}\n \n}\n
\n",
+ "content_html": "# 介绍 \n\nmariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 \n \n# 安装 \n\n本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 \n配置文件映射 \n \n端口 \n \n环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) \n \n到此已经可以在内网使用了,连接方法同 mysql 一致 \n \n# 配置 \n\n此处配置为 nginx 反向代理,配置完成后可在外网连接访问 \n \nstream {\n\t\n\t#极空间-docker-mariadb\n\tupstream mariadb {\n\t\thash $remote_addr consistent;\n\t\tserver mariadb的ip:端口;\n\t}\n\n\tserver {\n\t\tlisten 监听端口;\n\n\t\tproxy_connect_timeout 30s;\n\t\tproxy_timeout 300s;\n\t\tproxy_pass mariadb;\n\t}\n \n}\n
\n",
"tags": [
"极空间",
"Docker",
@@ -189,7 +189,7 @@
"url": "https://blog.jingxiyuan.cn/2022/10/17/redis%E4%B8%BB%E4%BB%8E%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE%E8%AE%B0%E5%BD%95/",
"title": "redis主从基础配置",
"date_published": "2022-10-17T06:07:00.000Z",
- "content_html": "# 主服务 \n\n基础配置 \n \nport 6379\nrequirepass 123456(密码,建议不设置)\nvm-enabled no (虚拟内存,内存够的情况下可以不使用)\nmaxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)\nbind 127.0.0.1 (注释掉,否则不能外部连接)\nrdbchecksum no(持久化数据检查)\nlist-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb)\nlist-compress-depth 20(quicklist的两端多少个node不压缩,0为全部不压缩)\n
\nsysctl vm.overcommit_memory=1 (立即生效)\n修改/etc/sysctl.conf添加vm.overcommit_memory=1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何。Redis的RDB持久化实现是folk一个子进程,然后让子进程将内存镜像dump到RDB文件中。理论上来说是需要跟父进程一样的内存空间,但是由于linux很早就支持的copy-on-write技术,所以实际上并不需要这么多的物理内存的。)\n
\n\n禁用透明大页(影响性能) \n \n需要sudo su 切换到root身份(sudo 没用)\necho never > /sys/kernel/mm/transparent_hugepage/enabled\n修改/etc/init.d/redis-server,加入/bin/echo never > /sys/kernel/mm/transparent_hugepage/enabled\n
\n\n修复 TCP 警告 \n \nsysctl net.core.somaxconn=1024(立即生效)\n修改/etc/sysctl.conf添加net.core.somaxconn=1024\n
\n\n客户端缓冲区限制 \n \n客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。\n可以三种不同客户端的方式进行设置:\nnormal -> 正常客户端\nslave -> slave 和 MONITOR 客户端\npubsub -> 至少订阅了一个 pubsub channel 或 pattern 的客户端\n语法 :\nclient-output-buffer-limit <class><hard limit> <soft limit> <soft seconds>\n一旦达到硬限制客户端会立即断开,或者达到软限制并保持达成的指定秒数(连续)。\n例如,如果硬限制为 32 兆字节和软限制为 16 兆字节 /10 秒,客户端将会立即断开。如果输出缓冲区的大小达到 32 兆字节,客户端达到 16 兆字节和连续超过了限制 10 秒,也将断开连接。默认 normal 客户端不做限制,因为他们在一个请求后未要求时(以推的方式)不接收数据,\n只有异步客户端可能会出现请求数据的速度比它可以读取的速度快的场景。\n把硬限制和软限制都设置为 0 来禁用该特性\nclient-output-buffer-limit normal 0 0 0\nclient-output-buffer-limit slave 5gb 512mb 60\nclient-output-buffer-limit pubsub 32mb 8mb 60\n
\n\n持久化配置 \n \n---关闭RDB持久化---\nsave ""\n默认配置如下:\nsave 900 1 #900秒内有1次更新就持久化\nsave 300 10 #300秒内有10次更新就持久化\nsave 60 10000 #60秒内有10000次更新就持久化\n---关闭RDB持久化---\n主从同步支持两种策略,即disk和socket方式。\n新的slave端和重连的salve端不允许去继续同步进程,这被称之为“完全同步”。\n一个RDB文件从master端传到slave端,分为两种情况:\n1、支持disk:master端将RDB file写到disk,稍后再传送到slave端;\n2、无磁盘diskless:master端直接将RDB file传到slave socket,不需要与disk进行交互。无磁盘diskless方式适合磁盘读写速度慢但网络带宽非常高的环境。\nrepl-diskless-sync no 默认不使用diskless同步方式\nrepl-diskless-sync-delay 30 无磁盘diskless方式在进行数据传递之前会有一个时间的延迟,以便slave端能够进行到待传送的目标队列中,这个时间默认是5秒\nrepl-ping-slave-period 60 slave端向server端发送pings的时间区间设置,默认为10秒\nrepl-timeout 3600 设置超时时间\nrepl-disable-tcp-nodelay no 是否启用TCP_NODELAY,如果启用则会使用少量的TCP包和带宽去进行数据传输到slave端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽。\nrepl-backlog-size 1mb 设置backlog的大小,backlog是一个缓冲区,在slave端失连时存放要同步到slave的数据,因此当一个slave要重连时,经常是不需要完全同步的,执行局部同步就足够了。\nbacklog设置的越大,slave可以失连的时间就越长。\nrepl-backlog-ttl 3600 如果一段时间后没有slave连接到master,则backlog size的内存将会被释放。如果值为0则表示永远不释放这部份内存。\nslave-priority 100 slave端的优先级设置,值是一个整数,数字越小表示优先级越高。当master故障时将会按照优先级来选择slave端进行恢复,如果值设置为0,则表示该slave永远不会被选择。\nmin-slaves-to-write 3\nmin-slaves-max-lag 10 设置当一个master端的可用slave少于N个,延迟时间大于M秒时,不接收写操作。\n
\n# 从服务 \n基本配置同主服务一致\nslaveof 127.0.0.1 6379(主redis的ip和端口)\nmasterauth 123456 (主redis的密码)\n可以通过slaveof no one命令将Slaver升级为Maste\nbgsave (持久化命令,在redis-cli中执行,默认创建dump.rdb文件,路径为 /var/lib/redis/dump.rdb。可通过find / -name dump.rd查找)\n
\n# 相关命令 \n看状态\nsudo /etc/init.d/redis-server status\n看端口\nnetstat -nlt|grep 6379\n外部连接\nsudo vim /etc/redis/redis.conf把protected-mode改为no,把bind ip注释掉\n重启\nsudo server redis-server restart\n查看内存\nfree -m\n批量删除指定key\nredis-cli -n 6 scan 0 match *2020-06-12 count 10000| xargs redis-cli -n 6 del\n大量删除key后快速释放被占用的内存\nmemory purge\n
\n# 问题解决 \n写入问题\nredis-cli config set stop-writes-on-bgsave-error no\nsudo vim /etc/redis/redis.conf把stop-writes-on-bgsave-error改为no\n修改系统 sudo vim /etc/sysctl.conf加入vm.overcommit_memory=1\nsudo sysctl vm.overcommit_memory=1\n
\n",
+ "content_html": "# 主服务 \n\n基础配置 \n \nport 6379\nrequirepass 123456(密码,建议不设置)\nvm-enabled no (虚拟内存,内存够的情况下可以不使用)\nmaxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)\nbind 127.0.0.1 (注释掉,否则不能外部连接)\nrdbchecksum no(持久化数据检查)\nlist-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb)\nlist-compress-depth 20(quicklist的两端多少个node不压缩,0为全部不压缩)\n
\nsysctl vm.overcommit_memory=1 (立即生效)\n修改/etc/sysctl.conf添加vm.overcommit_memory=1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何。Redis的RDB持久化实现是folk一个子进程,然后让子进程将内存镜像dump到RDB文件中。理论上来说是需要跟父进程一样的内存空间,但是由于linux很早就支持的copy-on-write技术,所以实际上并不需要这么多的物理内存的。)\n
\n\n禁用透明大页(影响性能) \n \n需要sudo su 切换到root身份(sudo 没用)\necho never > /sys/kernel/mm/transparent_hugepage/enabled\n修改/etc/init.d/redis-server,加入/bin/echo never > /sys/kernel/mm/transparent_hugepage/enabled\n
\n\n修复 TCP 警告 \n \nsysctl net.core.somaxconn=1024(立即生效)\n修改/etc/sysctl.conf添加net.core.somaxconn=1024\n
\n\n客户端缓冲区限制 \n \n客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。\n可以三种不同客户端的方式进行设置:\nnormal -> 正常客户端\nslave -> slave 和 MONITOR 客户端\npubsub -> 至少订阅了一个 pubsub channel 或 pattern 的客户端\n语法 :\nclient-output-buffer-limit <class><hard limit> <soft limit> <soft seconds>\n一旦达到硬限制客户端会立即断开,或者达到软限制并保持达成的指定秒数(连续)。\n例如,如果硬限制为 32 兆字节和软限制为 16 兆字节 /10 秒,客户端将会立即断开。如果输出缓冲区的大小达到 32 兆字节,客户端达到 16 兆字节和连续超过了限制 10 秒,也将断开连接。默认 normal 客户端不做限制,因为他们在一个请求后未要求时(以推的方式)不接收数据,\n只有异步客户端可能会出现请求数据的速度比它可以读取的速度快的场景。\n把硬限制和软限制都设置为 0 来禁用该特性\nclient-output-buffer-limit normal 0 0 0\nclient-output-buffer-limit slave 5gb 512mb 60\nclient-output-buffer-limit pubsub 32mb 8mb 60\n
\n\n持久化配置 \n \n---关闭RDB持久化---\nsave ""\n默认配置如下:\nsave 900 1 #900秒内有1次更新就持久化\nsave 300 10 #300秒内有10次更新就持久化\nsave 60 10000 #60秒内有10000次更新就持久化\n---关闭RDB持久化---\n主从同步支持两种策略,即disk和socket方式。\n新的slave端和重连的salve端不允许去继续同步进程,这被称之为“完全同步”。\n一个RDB文件从master端传到slave端,分为两种情况:\n1、支持disk:master端将RDB file写到disk,稍后再传送到slave端;\n2、无磁盘diskless:master端直接将RDB file传到slave socket,不需要与disk进行交互。无磁盘diskless方式适合磁盘读写速度慢但网络带宽非常高的环境。\nrepl-diskless-sync no 默认不使用diskless同步方式\nrepl-diskless-sync-delay 30 无磁盘diskless方式在进行数据传递之前会有一个时间的延迟,以便slave端能够进行到待传送的目标队列中,这个时间默认是5秒\nrepl-ping-slave-period 60 slave端向server端发送pings的时间区间设置,默认为10秒\nrepl-timeout 3600 设置超时时间\nrepl-disable-tcp-nodelay no 是否启用TCP_NODELAY,如果启用则会使用少量的TCP包和带宽去进行数据传输到slave端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽。\nrepl-backlog-size 1mb 设置backlog的大小,backlog是一个缓冲区,在slave端失连时存放要同步到slave的数据,因此当一个slave要重连时,经常是不需要完全同步的,执行局部同步就足够了。\nbacklog设置的越大,slave可以失连的时间就越长。\nrepl-backlog-ttl 3600 如果一段时间后没有slave连接到master,则backlog size的内存将会被释放。如果值为0则表示永远不释放这部份内存。\nslave-priority 100 slave端的优先级设置,值是一个整数,数字越小表示优先级越高。当master故障时将会按照优先级来选择slave端进行恢复,如果值设置为0,则表示该slave永远不会被选择。\nmin-slaves-to-write 3\nmin-slaves-max-lag 10 设置当一个master端的可用slave少于N个,延迟时间大于M秒时,不接收写操作。\n
\n# 从服务 \n基本配置同主服务一致\nslaveof 127.0.0.1 6379(主redis的ip和端口)\nmasterauth 123456 (主redis的密码)\n可以通过slaveof no one命令将Slaver升级为Maste\nbgsave (持久化命令,在redis-cli中执行,默认创建dump.rdb文件,路径为 /var/lib/redis/dump.rdb。可通过find / -name dump.rd查找)\n
\n# 相关命令 \n看状态\nsudo /etc/init.d/redis-server status\n看端口\nnetstat -nlt|grep 6379\n外部连接\nsudo vim /etc/redis/redis.conf把protected-mode改为no,把bind ip注释掉\n重启\nsudo server redis-server restart\n查看内存\nfree -m\n批量删除指定key\nredis-cli -n 6 scan 0 match *2020-06-12 count 10000| xargs redis-cli -n 6 del\n大量删除key后快速释放被占用的内存\nmemory purge\n
\n# 问题解决 \n写入问题\nredis-cli config set stop-writes-on-bgsave-error no\nsudo vim /etc/redis/redis.conf把stop-writes-on-bgsave-error改为no\n修改系统 sudo vim /etc/sysctl.conf加入vm.overcommit_memory=1\nsudo sysctl vm.overcommit_memory=1\n
\n",
"tags": [
"Linux",
"服务",
@@ -201,7 +201,7 @@
"url": "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/",
"title": "nginx允许跨域获取cookie的方法",
"date_published": "2022-10-14T09:13:00.000Z",
- "content_html": "# 使用场景 \n 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:
\nserver {\n\tlisten port ssl http2;\n\tserver_name xxx.com;\n\tssl_certificate_key /xxx.key;\n\tssl_certificate /xxx.pem;\n\tproxy_cookie_path ~(.*) "$1; SameSite=None; secure; httponly";\n\n\tlocation / {\n\t\t#允许镶套的方式(可以同域镶套、指定域名镶套或者所有域名镶套)\n\t\tadd_header X-Frame-Options ALLOWALL; #允许被所有域名镶套\n\t\tproxy_pass http://xxx;\n\t}\n}\n
\n",
+ "content_html": "# 使用场景 \n 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:
\nserver {\n\tlisten port ssl http2;\n\tserver_name xxx.com;\n\tssl_certificate_key /xxx.key;\n\tssl_certificate /xxx.pem;\n\tproxy_cookie_path ~(.*) "$1; SameSite=None; secure; httponly";\n\n\tlocation / {\n\t\t#允许镶套的方式(可以同域镶套、指定域名镶套或者所有域名镶套)\n\t\tadd_header X-Frame-Options ALLOWALL; #允许被所有域名镶套\n\t\tproxy_pass http://xxx;\n\t}\n}\n
\n",
"tags": [
"Linux",
"服务",
@@ -269,7 +269,7 @@
"url": "https://blog.jingxiyuan.cn/2022/09/27/nginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E9%85%8D%E7%BD%AE/",
"title": "nginx负载均衡配置",
"date_published": "2022-09-27T06:45:00.000Z",
- "content_html": "# nginx 负载均衡配置 \n\n轮询(默认) \n \n 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
\nupstream my_server {\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nweight 权重策略 \n \n weight 代表权重,默认为 1,权重越高被分配的客户端越多,指定轮询几率。weight 和访问比率成正比,用于后端服务器性能不均的情况。
\nupstream my_server {\n\tserver 192.168.0.2:8080 weight=1;\n\tserver 192.168.0.3:8080 weight=2;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nip_hash \n \n 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
\nupstream my_server {\n\tip_hash;\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nfair (第三方) \n \n 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
\nupstream my_server {\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n\tfair;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\n动静分离 \n \n 把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。
\n",
+ "content_html": "# nginx 负载均衡配置 \n\n轮询(默认) \n \n 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
\nupstream my_server {\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nweight 权重策略 \n \n weight 代表权重,默认为 1,权重越高被分配的客户端越多,指定轮询几率。weight 和访问比率成正比,用于后端服务器性能不均的情况。
\nupstream my_server {\n\tserver 192.168.0.2:8080 weight=1;\n\tserver 192.168.0.3:8080 weight=2;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nip_hash \n \n 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
\nupstream my_server {\n\tip_hash;\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\nfair (第三方) \n \n 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
\nupstream my_server {\n\tserver 192.168.0.2:8080;\n\tserver 192.168.0.3:8080;\n\tfair;\n}\n\nserver {\n\tlisten 80;\n\tserver_name 192.168.0.1;\n\n\t# Path to the root of your installation\n\tlocation / {\n\t\tproxy_pass http://my_server;\n\t}\n\t\n}\n
\n\n动静分离 \n \n 把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。
\n",
"tags": [
"Linux",
"服务",
diff --git a/index.html b/index.html
index a57935e9d..52d9bf173 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 文章列表 2022-11-08 6.1k 字 6 分钟
# 引言 所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。 # 何为反向代理 在介绍反向代理之前,先来了解一下正向代理。 __正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问...
more... 2022-11-04 1.6k 字 1 分钟
# 描述 今天需要把一个 web 项目部署到 ubuntu 服务器上,结果直接使用 apt install nodejs 安装的 nodejs 版本过低,导致编译失败。最后通过查看官网文档获取到了 ubuntu 最新 nodejs 的安装命令。 # 过程 卸载旧的 nodejs(此命令会卸载掉相关依赖包) sudo apt autoremove --purge nodejs 安装 NodeJS curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo...
more... 2022-11-03 15 字 1 分钟
终于又上班了。O (∩_∩) O~
more... 2022-11-02 1.1k 字 1 分钟
# 区别: 2>/dev/null 意思就是把错误输出到 “黑洞” >/dev/null 2>&1 默认情况是 1,也就是等同于 1>/dev/null 2>&1。意思就是把标准输出重定向到 “黑洞”,还把错误输出 2 重定向到标准输出 1,也就是标准输出和错误输出都进了 “黑洞” 2>&1 >/dev/null 意思就是把错误输出 2 重定向到标准出书 1,也就是屏幕,标准输出进了 “黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕 #...
more... 2022-11-01 68 字 1 分钟
# 360 独立版小工具 360 全家桶众说纷纭但工具箱还是挺实用的,这波小工具可以单独下载使用,有需要的朋友赶紧下载吧! 下载地址 # 部分工具截图
more... 2022-10-31 115 字 1 分钟
# 介绍 当你经常需要在家远程到公司进行办公,或者开启了很多临时文件、文档、软件需要等到第二天继续之前的工作时,结果系统自行更新并重启了。是不是会让你非常郁闷。关闭系统自行更新就可以轻松解决此类问题。 # 下载 win10 / win11 / 本地
more... 2022-10-27 2.4k 字 2 分钟
# 介绍 ip 直连一般都映射了 5055, 但是直接访问 5055 极空间只提供了 http 协议,如果希望使用 https 协议则必须使用其它端口进行访问。以下方案采用 nginx 反向代理实现,端口使用 10000 举例。 # 配置 需要先把 10000 端口在路由器上做好映射。 证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度) http 跳转 https 配置 server { if ($scheme = http) { rewrite ^(.*)$ https://$host$1...
more... 2022-10-22 2.3k 字 2 分钟
# 介绍 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 # 安装 本文使用的是 whyour/qinglong 的镜像。 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。) #青龙面板装载路径 /ql/data #博客装载路径(如果你不部署hexo博客可以不用配置) /root/.ssh...
more... 2022-10-21 959 字 1 分钟
valine 评论需要 LeanCloud 支持 # LeanCloud 注册 到 LeanCloud 网站完成注册。 创建应用。 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 点击配置按钮进行配置。 点击设置 - 应用凭证可获取 App ID 和 App Key 点击设置 - 安全中心根据自己的需求配置 # 修改 Theme.Shoka 配置 valine: appId: 粘贴5中获取的App ID #Your_appId appKey: 粘贴5中获取的App Key #Your_appkey placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言...
more... 2022-10-21 406 字 1 分钟
# 介绍 mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 # 安装 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 配置文件映射 端口 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) 到此已经可以在内网使用了,连接方法同 mysql 一致 # 配置 此处配置为 nginx 反向代理,配置完成后可在外网连接访问 stream { #极空间-docker-mariadb upstream...
more...
\ No newline at end of file
+☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 文章列表 2022-11-08 6.1k 字 6 分钟
# 引言 所有配置方法和介绍均来至于网络搜索汇总,主要用于方便后期巩固学习。 # 何为反向代理 在介绍反向代理之前,先来了解一下正向代理。 __正向代理:__如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问...
more... 2022-11-04 1.6k 字 1 分钟
# 描述 今天需要把一个 web 项目部署到 ubuntu 服务器上,结果直接使用 apt install nodejs 安装的 nodejs 版本过低,导致编译失败。最后通过查看官网文档获取到了 ubuntu 最新 nodejs 的安装命令。 # 过程 卸载旧的 nodejs(此命令会卸载掉相关依赖包) sudo apt autoremove --purge nodejs 安装 NodeJS curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo...
more... 2022-11-03 15 字 1 分钟
终于又上班了。O (∩_∩) O~
more... 2022-11-02 1.1k 字 1 分钟
# 区别: 2>/dev/null 意思就是把错误输出到 “黑洞” >/dev/null 2>&1 默认情况是 1,也就是等同于 1>/dev/null 2>&1。意思就是把标准输出重定向到 “黑洞”,还把错误输出 2 重定向到标准输出 1,也就是标准输出和错误输出都进了 “黑洞” 2>&1 >/dev/null 意思就是把错误输出 2 重定向到标准出书 1,也就是屏幕,标准输出进了 “黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕 #...
more... 2022-11-01 68 字 1 分钟
# 360 独立版小工具 360 全家桶众说纷纭但工具箱还是挺实用的,这波小工具可以单独下载使用,有需要的朋友赶紧下载吧! 下载地址 # 部分工具截图
more... 2022-10-31 115 字 1 分钟
# 介绍 当你经常需要在家远程到公司进行办公,或者开启了很多临时文件、文档、软件需要等到第二天继续之前的工作时,结果系统自行更新并重启了。是不是会让你非常郁闷。关闭系统自行更新就可以轻松解决此类问题。 # 下载 win10 / win11 / 本地
more... 2022-10-27 2.4k 字 2 分钟
# 介绍 ip 直连一般都映射了 5055, 但是直接访问 5055 极空间只提供了 http 协议,如果希望使用 https 协议则必须使用其它端口进行访问。以下方案采用 nginx 反向代理实现,端口使用 10000 举例。 # 配置 需要先把 10000 端口在路由器上做好映射。 证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度) http 跳转 https 配置 server { if ($scheme = http) { rewrite ^(.*)$ https://$host$1...
more... 2022-10-22 2.3k 字 2 分钟
# 介绍 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 # 安装 本文使用的是 whyour/qinglong 的镜像。 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。) #青龙面板装载路径 /ql/data #博客装载路径(如果你不部署hexo博客可以不用配置) /root/.ssh...
more... 2022-10-21 959 字 1 分钟
valine 评论需要 LeanCloud 支持 # LeanCloud 注册 到 LeanCloud 网站完成注册。 创建应用。 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 点击配置按钮进行配置。 点击设置 - 应用凭证可获取 App ID 和 App Key 点击设置 - 安全中心根据自己的需求配置 # 修改 Theme.Shoka 配置 valine: appId: 粘贴5中获取的App ID #Your_appId appKey: 粘贴5中获取的App Key #Your_appkey placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言...
more... 2022-10-21 406 字 1 分钟
# 介绍 mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 # 安装 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 配置文件映射 端口 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) 到此已经可以在内网使用了,连接方法同 mysql 一致 # 配置 此处配置为 nginx 反向代理,配置完成后可在外网连接访问 stream { #极空间-docker-mariadb upstream...
more...
\ No newline at end of file
diff --git a/page/2/index.html b/page/2/index.html
index edea89faf..f0bfbc7f8 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -1 +1 @@
-☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 2022-10-20 1.2k 字 1 分钟
# 安装 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。 需要先在 mysql 中创建给 wordpress 使用的库。 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。 端口映射。 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。 # 配置 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。 if((!empty(...
more... 2022-10-19 101 字 1 分钟
一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
more... 2022-10-18 7.3k 字 7 分钟
# 监控端服务安装与配置 nagios 需要安装主程序 core 和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts...
more... 2022-10-17 3.2k 字 3 分钟
# 主服务 基础配置 port 6379 requirepass 123456(密码,建议不设置) vm-enabled no (虚拟内存,内存够的情况下可以不使用) maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入) bind 127.0.0.1 (注释掉,否则不能外部连接) rdbchecksum no(持久化数据检查) list-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb) list-compress-depth...
more... 2022-10-14 366 字 1 分钟
# 使用场景 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下: server { listen port ssl http2; server_name xxx.com; ssl_certificate_key /xxx.key; ssl_certificate /xxx.pem; proxy_cookie_path ~(.*) "$1; SameSite=None; secure;...
more... 2022-10-12 111 字 1 分钟
# 简介 PicGo 是一款开源的图床管理工具,十分流行。 PicGo 官方指南:PicGo | PicGo # 配置 安装插件(需要先安装 NodeJS) 图床配置 url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
more... 2022-10-11 709 字 1 分钟
# 前期准备 首先安装好 svn 和 git 工具。 # svn 转 git 1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下: svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" =...
more... 2022-10-06 1.6k 字 1 分钟
# X-Frame-Options 响应头配置详解 X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数: 1、 DENY 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 2、SAMEORIGIN 表示该页面可以在相同域名页面的 frame 中展示。 3、ALLOW-FROM uri 表示该页面可以在指定来源的 frame...
more... 2022-09-28 16 字 1 分钟
一个月都过去了,工作还没有着落!
more... 2022-09-27 1.1k 字 1 分钟
# nginx 负载均衡配置 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 upstream my_server { server 192.168.0.2:8080; server 192.168.0.3:8080; } server { listen 80; server_name 192.168.0.1; # Path to the root of your installation location / { proxy_pass...
more...
\ No newline at end of file
+☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 2022-10-20 1.2k 字 1 分钟
# 安装 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。 需要先在 mysql 中创建给 wordpress 使用的库。 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。 端口映射。 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。 # 配置 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。 if((!empty(...
more... 2022-10-19 101 字 1 分钟
一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
more... 2022-10-18 7.3k 字 7 分钟
# 监控端服务安装与配置 nagios 需要安装主程序 core 和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts...
more... 2022-10-17 3.2k 字 3 分钟
# 主服务 基础配置 port 6379 requirepass 123456(密码,建议不设置) vm-enabled no (虚拟内存,内存够的情况下可以不使用) maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入) bind 127.0.0.1 (注释掉,否则不能外部连接) rdbchecksum no(持久化数据检查) list-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb) list-compress-depth...
more... 2022-10-14 366 字 1 分钟
# 使用场景 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下: server { listen port ssl http2; server_name xxx.com; ssl_certificate_key /xxx.key; ssl_certificate /xxx.pem; proxy_cookie_path ~(.*) "$1; SameSite=None; secure;...
more... 2022-10-12 111 字 1 分钟
# 简介 PicGo 是一款开源的图床管理工具,十分流行。 PicGo 官方指南:PicGo | PicGo # 配置 安装插件(需要先安装 NodeJS) 图床配置 url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
more... 2022-10-11 709 字 1 分钟
# 前期准备 首先安装好 svn 和 git 工具。 # svn 转 git 1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下: svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" =...
more... 2022-10-06 1.6k 字 1 分钟
# X-Frame-Options 响应头配置详解 X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数: 1、 DENY 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 2、SAMEORIGIN 表示该页面可以在相同域名页面的 frame 中展示。 3、ALLOW-FROM uri 表示该页面可以在指定来源的 frame...
more... 2022-09-28 16 字 1 分钟
一个月都过去了,工作还没有着落!
more... 2022-09-27 1.1k 字 1 分钟
# nginx 负载均衡配置 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 upstream my_server { server 192.168.0.2:8080; server 192.168.0.3:8080; } server { listen 80; server_name 192.168.0.1; # Path to the root of your installation location / { proxy_pass...
more...
\ No newline at end of file
diff --git a/page/3/index.html b/page/3/index.html
index 2b97ee4ef..cc86e34cb 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -1 +1 @@
-☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 2022-09-26 1.8k 字 2 分钟
今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。 解决方法如下: 到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs...
more... 2022-09-23 268 字 1 分钟
今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下: location / { resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析 set $my_server "https://ip:port"; proxy_pass...
more... 2022-09-22 179 字 1 分钟
# 下载工具 protoc-3.19.5-win64.zip # 生成 js 文件 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下 cmd 到相同的 bin 目录下 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件
more... 2022-09-21 508 字 1 分钟
今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者...
more... 2022-09-17 598 字 1 分钟
# Hexo + Theme.Shoka 安装 安装介绍 # algolia 注册 algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。 登录 algolia 后创建一个 index,名字随意记住既可。 点击右上角红点,弹出窗口点 settings 按钮。 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。 algolia: appId: #Your...
more... 2022-09-16 608 字 1 分钟
# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间...
more... 2022-09-14 1.1k 字 1 分钟
# hexo 博客安装 安装 nodejs 安装 git 安装 hexo(windows 需进入 git bash) npm install -g hexo-cli 初始化博客目录 hexo init blog 进入博客目录 cd blog 初始化 hexo 到博客目录 npm install # shoka 主题安装 下载主题 git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器 npm un...
more...
\ No newline at end of file
+☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣 2022-09-26 1.8k 字 2 分钟
今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。 解决方法如下: 到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs...
more... 2022-09-23 268 字 1 分钟
今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下: location / { resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析 set $my_server "https://ip:port"; proxy_pass...
more... 2022-09-22 179 字 1 分钟
# 下载工具 protoc-3.19.5-win64.zip # 生成 js 文件 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下 cmd 到相同的 bin 目录下 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件
more... 2022-09-21 508 字 1 分钟
今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者...
more... 2022-09-17 598 字 1 分钟
# Hexo + Theme.Shoka 安装 安装介绍 # algolia 注册 algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。 登录 algolia 后创建一个 index,名字随意记住既可。 点击右上角红点,弹出窗口点 settings 按钮。 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。 algolia: appId: #Your...
more... 2022-09-16 608 字 1 分钟
# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间...
more... 2022-09-14 1.1k 字 1 分钟
# hexo 博客安装 安装 nodejs 安装 git 安装 hexo(windows 需进入 git bash) npm install -g hexo-cli 初始化博客目录 hexo init blog 进入博客目录 cd blog 初始化 hexo 到博客目录 npm install # shoka 主题安装 下载主题 git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器 npm un...
more...
\ No newline at end of file
diff --git a/rss.xml b/rss.xml
index 1f9db6a8a..4a5cb1680 100644
--- a/rss.xml
+++ b/rss.xml
@@ -57,18 +57,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 {</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>}</pre></td></tr><tr><td data-num="8"></td><td><pre></pre></td></tr><tr><td data-num="9"></td><td><pre>http {</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 {</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 / {</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> }</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 {</pre></td></tr><tr><td data-num="29"></td><td><pre> root html;</pre></td></tr><tr><td data-num="30"></td><td><pre> }</pre></td></tr><tr><td data-num="31"></td><td><pre> }</pre></td></tr><tr><td data-num="32"></td><td><pre>}</pre></td></tr></table></figure><p>去掉注释信息后,可以将 nginx.conf 配置文件分为三部分:</p>
+<pre><code class="language-yaml"># 主进程叫master,负责管理子进程,子进程叫worker
+# worker_processes配置项表示开启几个业务进程,一般和cpu核数有关
+worker_processes 1;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ # include表示可以引入其他文件,此处表示引入http mime类型
+ include mime.types;
+ default_type application/octet-stream;
+ sendfile on;
+ keepalive_timeout 65;
+
+ # 虚拟主机,可以配置多个
+ server {
+ listen 80;
+ server_name localhost;
+
+ location / {
+ # 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径
+ root html;
+ index index.html index.htm;
+ }
+
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root html;
+ }
+ }
+}
+</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 {
+<pre><code class="language-yaml">events {
worker_connections 1024;
}
</code></pre>
@@ -77,7 +110,7 @@ __反向代理:__看下面原理图,就一目了然。其实客户端对代
<ol start="3">
<li>http 块</li>
</ol>
-<pre><code class="language-conf">http {
+<pre><code class="language-yaml">http {
include mime.types;
default_type application/octet-stream;
sendfile on;
@@ -107,25 +140,24 @@ __反向代理:__看下面原理图,就一目了然。其实客户端对代
<ol>
<li>location 配置规则</li>
</ol>
-<pre><code class="language-conf">location [ = | ~ | ~* | ^~ | @ ] /uri {
+<pre><code class="language-yaml">location [ = | ~ | ~* | ^~ | @ ] /uri {
}
-= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
-~:用于表示 uri 包含正则表达式,并且区分大小写。
-~*:用于表示 uri 包含正则表达式,并且不区分大小写。
-^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location
-后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
-@: "@" 定义一个命名的 location,使用在内部定向时,例如 error_page
-/uri:不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则
-/:通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
+= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
+~ :用于表示 uri 包含正则表达式,并且区分大小写。
+~* :用于表示 uri 包含正则表达式,并且不区分大小写。
+^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
+@ : "@" 定义一个命名的 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:
@@ -182,7 +214,7 @@ location /model {
}
</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;
@@ -344,7 +376,7 @@ sudo apt-get update && sudo apt-get install yarn
<ul>
<li>配置 nginx (编译 /etc/nginx/sites-available/default)</li>
</ul>
-<pre><code class="language-conf">server {
+<pre><code class="language-yaml">server {
listen 80 default_server;
listen [::]:80 default_server;
@@ -544,7 +576,7 @@ ls b.txt >& output.txt #两个表达式效果一样的
<li>证书生成好并放置到 nginx 上。(证书生成方法不做介绍请自行百度)</li>
<li>http 跳转 https 配置</li>
</ol>
-<pre><code class="language-conf">server {
+<pre><code class="language-yaml">server {
if ($scheme = http) {
rewrite ^(.*)$ https://$host$1 permanent;
}
@@ -553,7 +585,7 @@ ls b.txt >& output.txt #两个表达式效果一样的
<ol start="4">
<li>web 端口监听配置</li>
</ol>
-<pre><code class="language-conf">#极空间-web
+<pre><code class="language-yaml">#极空间-web
server {
listen 10000 ssl http2; #ipv4
listen [::]:10000 ssl http2; #ipv6
@@ -646,7 +678,7 @@ server {
<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上可以不用配置)
@@ -673,13 +705,13 @@ server {
<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="js py ts"
钉钉(消息推送)
export DD_BOT_TOKEN=
@@ -711,7 +743,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
@@ -807,7 +839,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
@@ -869,7 +901,7 @@ curl -sS https://bootstrap.pypa.io/get-pip.py | python3
<ul>
<li>此处配置为 nginx 反向代理,配置完成后可在外网连接访问</li>
</ul>
-<pre><code class="language-conf">stream {
+<pre><code class="language-yaml">stream {
#极空间-docker-mariadb
upstream mariadb {
@@ -1226,7 +1258,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当使用了多少物理内存后就开始拒绝后续的写入)
@@ -1254,7 +1286,7 @@ echo never > /sys/kernel/mm/transparent_hugepage/enabled
<ol start="4">
<li>客户端缓冲区限制</li>
</ol>
-<pre><code class="language-conf">客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。
+<pre><code class="language-yaml">客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。
可以三种不同客户端的方式进行设置:
normal -> 正常客户端
slave -> slave 和 MONITOR 客户端
@@ -1272,7 +1304,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 ""
默认配置如下:
save 900 1 #900秒内有1次更新就持久化
@@ -1297,7 +1329,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
@@ -1341,7 +1373,7 @@ sudo sysctl vm.overcommit_memory=1
Fri, 14 Oct 2022 17:13:00 +0800
标签:2>&1 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:2>&1 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/360小工具/index.html b/tags/360小工具/index.html
index f85274301..70798b5db 100644
--- a/tags/360小工具/index.html
+++ b/tags/360小工具/index.html
@@ -1 +1 @@
-标签:360小工具 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:360小工具 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Hexo-admin/index.html b/tags/Hexo-admin/index.html
index 3c7f8960e..d1baeed7c 100644
--- a/tags/Hexo-admin/index.html
+++ b/tags/Hexo-admin/index.html
@@ -1 +1 @@
-标签:Hexo-admin | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Hexo-admin | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html
index 6dfcc3b82..b2aef6115 100644
--- a/tags/Hexo/index.html
+++ b/tags/Hexo/index.html
@@ -1 +1 @@
-标签:Hexo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Hexo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/NodeJS/index.html b/tags/NodeJS/index.html
index 52d639f2b..8027812c4 100644
--- a/tags/NodeJS/index.html
+++ b/tags/NodeJS/index.html
@@ -1 +1 @@
-标签:NodeJS | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:NodeJS | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/PicGo/index.html b/tags/PicGo/index.html
index e8b59e5e2..1151ee6f1 100644
--- a/tags/PicGo/index.html
+++ b/tags/PicGo/index.html
@@ -1 +1 @@
-标签:PicGo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:PicGo | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Shell/index.html b/tags/Shell/index.html
index a6fce85c2..b0b07228b 100644
--- a/tags/Shell/index.html
+++ b/tags/Shell/index.html
@@ -1 +1 @@
-标签:Shell | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Shell | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Shoka/index.html b/tags/Shoka/index.html
index 861a842a4..3cd2fd4c1 100644
--- a/tags/Shoka/index.html
+++ b/tags/Shoka/index.html
@@ -1 +1 @@
-标签:Shoka | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Shoka | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Valine/index.html b/tags/Valine/index.html
index 21dfb7b89..68b481b3e 100644
--- a/tags/Valine/index.html
+++ b/tags/Valine/index.html
@@ -1 +1 @@
-标签:Valine | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Valine | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Windows10/index.html b/tags/Windows10/index.html
index aa1320752..6945786f9 100644
--- a/tags/Windows10/index.html
+++ b/tags/Windows10/index.html
@@ -1 +1 @@
-标签:Windows10 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Windows10 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Windows11/index.html b/tags/Windows11/index.html
index 786789beb..05a96289c 100644
--- a/tags/Windows11/index.html
+++ b/tags/Windows11/index.html
@@ -1 +1 @@
-标签:Windows11 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Windows11 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Wordpress/index.html b/tags/Wordpress/index.html
index a547be180..dc34129ea 100644
--- a/tags/Wordpress/index.html
+++ b/tags/Wordpress/index.html
@@ -1 +1 @@
-标签:Wordpress | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Wordpress | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/algolia/index.html b/tags/algolia/index.html
index a0d562ce8..78cf0fae9 100644
--- a/tags/algolia/index.html
+++ b/tags/algolia/index.html
@@ -1 +1 @@
-标签:algolia | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:algolia | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/chevereto/index.html b/tags/chevereto/index.html
index 01a3bd56e..8a7831509 100644
--- a/tags/chevereto/index.html
+++ b/tags/chevereto/index.html
@@ -1 +1 @@
-标签:chevereto | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:chevereto | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/cookie/index.html b/tags/cookie/index.html
index 8299ba680..32235f5ac 100644
--- a/tags/cookie/index.html
+++ b/tags/cookie/index.html
@@ -1 +1 @@
-标签:cookie | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:cookie | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/docker/index.html b/tags/docker/index.html
index 45bc0d1c2..1a35aa214 100644
--- a/tags/docker/index.html
+++ b/tags/docker/index.html
@@ -1 +1 @@
-标签:docker | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:docker | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/git/index.html b/tags/git/index.html
index 0137a7f80..8d693b4ff 100644
--- a/tags/git/index.html
+++ b/tags/git/index.html
@@ -1 +1 @@
-标签:git | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:git | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/https/index.html b/tags/https/index.html
index c7a73d6ee..a57b5ed23 100644
--- a/tags/https/index.html
+++ b/tags/https/index.html
@@ -1 +1 @@
-标签:https | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:https | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/iframe/index.html b/tags/iframe/index.html
index a5f5b2d79..df8dae802 100644
--- a/tags/iframe/index.html
+++ b/tags/iframe/index.html
@@ -1 +1 @@
-标签:iframe | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:iframe | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/index.html b/tags/index.html
index 0b25a1753..7c5f4cbfb 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -1 +1 @@
-全部标签 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+全部标签 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/js/index.html b/tags/js/index.html
index 8e023d169..61acc412b 100644
--- a/tags/js/index.html
+++ b/tags/js/index.html
@@ -1 +1 @@
-标签:js | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:js | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/mariadb/index.html b/tags/mariadb/index.html
index 9eb86acbc..147531d13 100644
--- a/tags/mariadb/index.html
+++ b/tags/mariadb/index.html
@@ -1 +1 @@
-标签:mariadb | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:mariadb | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/mysql/index.html b/tags/mysql/index.html
index 6f0da886d..17447571d 100644
--- a/tags/mysql/index.html
+++ b/tags/mysql/index.html
@@ -1 +1 @@
-标签:mysql | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:mysql | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/nagios/index.html b/tags/nagios/index.html
index a17ebb094..c7401142e 100644
--- a/tags/nagios/index.html
+++ b/tags/nagios/index.html
@@ -1 +1 @@
-标签:nagios | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:nagios | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/netty/index.html b/tags/netty/index.html
index 9be9c20a9..971bc6583 100644
--- a/tags/netty/index.html
+++ b/tags/netty/index.html
@@ -1 +1 @@
-标签:netty | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:netty | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/nginx/index.html b/tags/nginx/index.html
index ea2f2db8b..45296c5bb 100644
--- a/tags/nginx/index.html
+++ b/tags/nginx/index.html
@@ -1 +1 @@
-标签:nginx | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:nginx | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/protobuf/index.html b/tags/protobuf/index.html
index 4274dffb4..5ef18a52f 100644
--- a/tags/protobuf/index.html
+++ b/tags/protobuf/index.html
@@ -1 +1 @@
-标签:protobuf | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:protobuf | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/redis/index.html b/tags/redis/index.html
index ff2b37130..761464809 100644
--- a/tags/redis/index.html
+++ b/tags/redis/index.html
@@ -1 +1 @@
-标签:redis | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:redis | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/socketIO/index.html b/tags/socketIO/index.html
index 3ce46c439..54b8a127c 100644
--- a/tags/socketIO/index.html
+++ b/tags/socketIO/index.html
@@ -1 +1 @@
-标签:socketIO | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:socketIO | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/svn/index.html b/tags/svn/index.html
index e7f8e8231..6f5844c40 100644
--- a/tags/svn/index.html
+++ b/tags/svn/index.html
@@ -1 +1 @@
-标签:svn | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:svn | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/vue/index.html b/tags/vue/index.html
index 539da87c6..957295096 100644
--- a/tags/vue/index.html
+++ b/tags/vue/index.html
@@ -1 +1 @@
-标签:vue | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:vue | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/web/index.html b/tags/web/index.html
index e2b4b94c3..f0bdf6102 100644
--- a/tags/web/index.html
+++ b/tags/web/index.html
@@ -1 +1 @@
-标签:web | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:web | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/yarn/index.html b/tags/yarn/index.html
index 59adf2470..e55cf64a3 100644
--- a/tags/yarn/index.html
+++ b/tags/yarn/index.html
@@ -1 +1 @@
-标签:yarn | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:yarn | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/博客/index.html b/tags/博客/index.html
index 84b405628..da9c47615 100644
--- a/tags/博客/index.html
+++ b/tags/博客/index.html
@@ -1 +1 @@
-标签:博客 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:博客 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/反向代理/index.html b/tags/反向代理/index.html
index 733ad13a9..56f6a164d 100644
--- a/tags/反向代理/index.html
+++ b/tags/反向代理/index.html
@@ -1 +1 @@
-标签:反向代理 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:反向代理 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/图床/index.html b/tags/图床/index.html
index 5a07eb694..499e653b0 100644
--- a/tags/图床/index.html
+++ b/tags/图床/index.html
@@ -1 +1 @@
-标签:图床 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:图床 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/图片上传/index.html b/tags/图片上传/index.html
index bd2839850..76e4f63ea 100644
--- a/tags/图片上传/index.html
+++ b/tags/图片上传/index.html
@@ -1 +1 @@
-标签:图片上传 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:图片上传 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/定时任务/index.html b/tags/定时任务/index.html
index ea6f2a514..a484cd226 100644
--- a/tags/定时任务/index.html
+++ b/tags/定时任务/index.html
@@ -1 +1 @@
-标签:定时任务 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:定时任务 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/心情/index.html b/tags/心情/index.html
index a764f29a5..12bb4feeb 100644
--- a/tags/心情/index.html
+++ b/tags/心情/index.html
@@ -1 +1 @@
-标签:心情 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:心情 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/搜索/index.html b/tags/搜索/index.html
index d8c1fe1ad..998273aba 100644
--- a/tags/搜索/index.html
+++ b/tags/搜索/index.html
@@ -1 +1 @@
-标签:搜索 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:搜索 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/服务监控/index.html b/tags/服务监控/index.html
index 7fe6d0bdd..9fe8a4f1e 100644
--- a/tags/服务监控/index.html
+++ b/tags/服务监控/index.html
@@ -1 +1 @@
-标签:服务监控 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:服务监控 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/极空间/index.html b/tags/极空间/index.html
index 43a8eb2af..dfd4e5e4f 100644
--- a/tags/极空间/index.html
+++ b/tags/极空间/index.html
@@ -1 +1 @@
-标签:极空间 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:极空间 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/背景音乐/index.html b/tags/背景音乐/index.html
index 3c202d735..cf076cf5a 100644
--- a/tags/背景音乐/index.html
+++ b/tags/背景音乐/index.html
@@ -1 +1 @@
-标签:背景音乐 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:背景音乐 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/自动更新/index.html b/tags/自动更新/index.html
index f135a77d1..a1d3b79b0 100644
--- a/tags/自动更新/index.html
+++ b/tags/自动更新/index.html
@@ -1 +1 @@
-标签:自动更新 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:自动更新 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/评论/index.html b/tags/评论/index.html
index 3c172c380..dbe860595 100644
--- a/tags/评论/index.html
+++ b/tags/评论/index.html
@@ -1 +1 @@
-标签:评论 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:评论 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/负载均衡/index.html b/tags/负载均衡/index.html
index d98f0d409..db2a92ad6 100644
--- a/tags/负载均衡/index.html
+++ b/tags/负载均衡/index.html
@@ -1 +1 @@
-标签:负载均衡 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:负载均衡 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/踩坑/index.html b/tags/踩坑/index.html
index 946568938..edf3ad16c 100644
--- a/tags/踩坑/index.html
+++ b/tags/踩坑/index.html
@@ -1 +1 @@
-标签:踩坑 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:踩坑 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/郁闷/index.html b/tags/郁闷/index.html
index cd84fd2bf..37dcc1a17 100644
--- a/tags/郁闷/index.html
+++ b/tags/郁闷/index.html
@@ -1 +1 @@
-标签:郁闷 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:郁闷 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/青龙面板/index.html b/tags/青龙面板/index.html
index 8c60833d4..c167656c0 100644
--- a/tags/青龙面板/index.html
+++ b/tags/青龙面板/index.html
@@ -1 +1 @@
-标签:青龙面板 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:青龙面板 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file