Site updated: 2022-11-30 17:23:29
This commit is contained in:
1 parent
32f10349f0
commit
8ac1f34448
129 files changed
+345
-301
No files matched your search
@@ -6,6 +6,50 @@
|
||||
"description": "天生我材必有用",
|
||||
"home_page_url": "https://blog.jingxiyuan.cn",
|
||||
"items": [
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/30/%E5%B0%86nginx%E6%9B%BF%E6%8D%A2%E4%B8%BAtengine/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/30/%E5%B0%86nginx%E6%9B%BF%E6%8D%A2%E4%B8%BAtengine/",
|
||||
"title": "将nginx替换为tengine",
|
||||
"date_published": "2022-11-30T09:05:00.000Z",
|
||||
"content_html": "<h4 id=\"介绍\"><a class=\"anchor\" href=\"#介绍\">#</a> 介绍</h4>\n<div class=\"note infoTengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。从2011年12月开始,Tengine成为一个开源项目。现在,它由Tengine团队开发和维护。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。:::\">\n<p>tengine 简单来说就是淘宝自己基于 nginx 优化的网页引擎,在 nginx 原先基础上继续保持兼容,同时功能扩展,效率提高,可以看到目前淘宝网在这么多人同时使用的情况下依然稳定,我们足以相信 tengine,由于它是 nginx 的一个分生版本,所以几乎完全兼容 nginx,所以我认为 tengine 是搭建 lnmp 环境的不二之选。</p>\n<h4 id=\"下载\"><a class=\"anchor\" href=\"#下载\">#</a> 下载</h4>\n<p>首先访问<span class=\"exturl\" data-url=\"aHR0cDovL3RlbmdpbmUudGFvYmFvLm9yZy8=\"> tengine 官方网站</span>,获取最新的下载地址。<br />\n <code>wget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz</code></p>\n<h4 id=\"获取编译参数\"><a class=\"anchor\" href=\"#获取编译参数\">#</a> 获取编译参数</h4>\n<p><code>nginx -V</code></p>\n<h4 id=\"编译\"><a class=\"anchor\" href=\"#编译\">#</a> 编译</h4>\n<p><code>./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_uwsgi_module --without-http_scgi_module</code> <br />\n./configure 后面的参数是上一步获取的</p>\n<h4 id=\"make\"><a class=\"anchor\" href=\"#make\">#</a> Make</h4>\n<p><code>make 或者 make -j 内核数</code> <br />\n生成的文件在 objs 目录下</p>\n<h4 id=\"替换\"><a class=\"anchor\" href=\"#替换\">#</a> 替换</h4>\n<p>停止 nginx 服务 <code>service nginx stop</code> <br />\n 查看 nginx 目录 <code>whereis nginx</code> <br />\n 备份旧 nginx <code>mv /usr/sbin/nginx /usr/sbin/nginx.old</code> <br />\n 拷贝 objs 下的 nginx 替换旧 nginx <code>cp ./objs/nginx /usr/sbin/</code> <br />\n 备份旧 so 文件<br />\n拷贝 objs 下的 so 文件替换旧的 so 文件 <code>cp ./objs/*.so /usr/lib/nginx/modules/</code></p>\n<h4 id=\"测试\"><a class=\"anchor\" href=\"#测试\">#</a> 测试</h4>\n<p><code>nginx -t</code> 如果打印 test is successful 则表示替换成功。<br />\n然后执行 service nginx start 进行启动即可</p>\n</div>\n",
|
||||
"tags": [
|
||||
"Linux",
|
||||
"服务",
|
||||
"Nginx",
|
||||
"Nginx",
|
||||
"Tengine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/30/Nginx%E5%8A%A8%E6%80%81%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D%E6%96%B9%E6%A1%88/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/30/Nginx%E5%8A%A8%E6%80%81%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D%E6%96%B9%E6%A1%88/",
|
||||
"title": "Nginx动态解析域名方案",
|
||||
"date_published": "2022-11-30T08:35:00.000Z",
|
||||
"content_html": "<h4 id=\"应用场景\"><a class=\"anchor\" href=\"#应用场景\">#</a> 应用场景:</h4>\n<p>由于有时候 nginx 代理的时候,第三方域名对应的 ip 可能发生变化,然而没有提前通知,然而如果不配置什么,nginx 又不能智能解析,因此 nginx 动态解析域名就比较重要。</p>\n<h4 id=\"一-使用模块nginx-upstream-dynamic-servers\"><a class=\"anchor\" href=\"#一-使用模块nginx-upstream-dynamic-servers\">#</a> 一、使用模块 nginx-upstream-dynamic-servers</h4>\n<p>该模块在启动 nginx 的时候会对域名进行一次解析,解析完成后,在 DNS 服务器设定的 TTL 过期时间内不会再次更新,在 TTL 过期后则会再次发起域名解析请求更新域名所对应的 IP 地址。</p>\n<p>需要在 nginx 的配置文件中的 http 配置域内指定使用的 DNS 服务器,在 upstream 中需要进行域名解析的 server 后面添加 resolve 参数。</p>\n<p>例:</p>\n<figure class=\"highlight yaml\"><figcaption data-lang=\"YAML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>http <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre> resolver ip;</pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre> upstream test <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre> server www.xxx.com<span class=\"token punctuation\">:</span>8080 resolve;</pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre> <span class=\"token punctuation\">}</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre></pre></td></tr><tr><td data-num=\"11\"></td><td><pre> server <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre></pre></td></tr><tr><td data-num=\"13\"></td><td><pre> listen 8080;</pre></td></tr><tr><td data-num=\"14\"></td><td><pre></pre></td></tr><tr><td data-num=\"15\"></td><td><pre> client_body_buffer_size 10m;</pre></td></tr><tr><td data-num=\"16\"></td><td><pre></pre></td></tr><tr><td data-num=\"17\"></td><td><pre> server_name localhost;</pre></td></tr><tr><td data-num=\"18\"></td><td><pre></pre></td></tr><tr><td data-num=\"19\"></td><td><pre> location / <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"20\"></td><td><pre> </pre></td></tr><tr><td data-num=\"21\"></td><td><pre> proxy_pass http<span class=\"token punctuation\">:</span>//test;</pre></td></tr><tr><td data-num=\"22\"></td><td><pre> </pre></td></tr><tr><td data-num=\"23\"></td><td><pre> <span class=\"token punctuation\">}</span></pre></td></tr><tr><td data-num=\"24\"></td><td><pre> </pre></td></tr><tr><td data-num=\"25\"></td><td><pre> <span class=\"token punctuation\">}</span></pre></td></tr><tr><td data-num=\"26\"></td><td><pre></pre></td></tr><tr><td data-num=\"27\"></td><td><pre><span class=\"token punctuation\">}</span></pre></td></tr></table></figure><p>缺点:</p>\n<p>1、每次解析域名之后,会从 DNS 服务器获取到改 DNS 的 TTL,在 TTL 期限内不会再次解析,所以如果目标域名发生改变,nginx 不会更新解析,知道 TTL 过期。</p>\n<p>2、DNS 服务器在 http 配置域配置全,不能在 location 中细分指定。</p>\n<h4 id=\"二-使用模块ngx_upstream_jdomain\"><a class=\"anchor\" href=\"#二-使用模块ngx_upstream_jdomain\">#</a> 二、使用模块 ngx_upstream_jdomain</h4>\n<p>在 http 配置域中配置 DNS 服务器,在 upstream 中按照这个模块的格式配置,支持设置每隔多少秒进行一次解析(抓包分析过设置 interval 可指定解析间隔),如果解析失败则使用缓存中的上一次解析结果的 IP 地址访问。</p>\n<p>例:</p>\n<figure class=\"highlight yaml\"><figcaption data-lang=\"YAML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>http <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre></pre></td></tr><tr><td data-num=\"3\"></td><td><pre> resolver ip;</pre></td></tr><tr><td data-num=\"4\"></td><td><pre></pre></td></tr><tr><td data-num=\"5\"></td><td><pre> upstream test <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre></pre></td></tr><tr><td data-num=\"7\"></td><td><pre> jdomain www.xxx.com port=8080 interval=10; <span class=\"token comment\">#指定域名和端口,每隔 10 秒进行一次解析</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre></pre></td></tr><tr><td data-num=\"9\"></td><td><pre> <span class=\"token punctuation\">}</span></pre></td></trLine truncated
|
||||
"tags": [
|
||||
"Linux",
|
||||
"服务",
|
||||
"Nginx",
|
||||
"Nginx",
|
||||
"动态域名解析",
|
||||
"Tengine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/30/Nginx%E9%85%8D%E7%BD%AEstream%E8%B8%A9%E5%9D%91/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/30/Nginx%E9%85%8D%E7%BD%AEstream%E8%B8%A9%E5%9D%91/",
|
||||
"title": "Nginx配置stream踩坑",
|
||||
"date_published": "2022-11-30T08:09:00.000Z",
|
||||
"content_html": "<h4 id=\"引言\"><a class=\"anchor\" href=\"#引言\">#</a> 引言</h4>\n<p>stream 模块一般用于 TCP/UDP 数据流的代理和负载均衡,可以通过 stream 模块代理转发 TCP 消息。我是用来转发 mysql、gitee 等连接的,结果有天 ip 发生了变动导致连接不上。前期试过配置<span class=\"blue\"> resolver 114.114.114.114 valid=60s;</span> 来动态解析域名,结果 stream 模块不支持 set 函数,这就导致 ip 变动后必须手动重启或者 reload 一下 nginx 才能正常连接。后面经过搜索发现有人说用 Tengine 替代 nginx 可以实现就试了试,结果发现<span class=\"red\"> Tengine 只能实现 http 下的动态域名解析</span>,至此问题依旧。没办法,我只能通过定时任务加脚本判断 ip 是否变动,如果变动就 reload 一下 nginx。</p>\n<figure class=\"highlight bash\"><figcaption data-lang=\"bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token shebang important\">#!/bin/bash</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token comment\">#使用 crontab -e 命令添加定时任务 */1 * * * * sh /home/xxx/autoReloadNginx.sh</span></pre></td></tr><tr><td data-num=\"3\"></td><td><pre><span class=\"token assign-left variable\">home</span><span class=\"token operator\">=</span><span class=\"token string\">\"/home/xxx\"</span> <span class=\"token comment\">#指定 home 路径,如果使用 `pwd` 则 domainIP.txt 生成在当前用户目录下</span></pre></td></tr><tr><td data-num=\"4\"></td><td><pre><span class=\"token assign-left variable\">domain</span><span class=\"token operator\">=</span>xxx.xxx.cn</pre></td></tr><tr><td data-num=\"5\"></td><td><pre><span class=\"token assign-left variable\">IP</span><span class=\"token operator\">=</span><span class=\"token variable\"><span class=\"token variable\">`</span><span class=\"token function\">ping</span> <span class=\"token parameter variable\">-4</span> <span class=\"token parameter variable\">-c</span> <span class=\"token number\">4</span> $domain <span class=\"token operator\">|</span> <span class=\"token function\">grep</span> from <span class=\"token operator\">|</span> <span class=\"token function\">tail</span> <span class=\"token parameter variable\">-n</span> <span class=\"token number\">1</span> <span class=\"token operator\">|</span> <span class=\"token function\">awk</span> <span class=\"token parameter variable\">-F</span> <span class=\"token string\">' '</span> <span class=\"token string\">'{print $4}'</span><span class=\"token variable\">`</span></span></pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token assign-left variable\">regex</span><span class=\"token operator\">=</span><span class=\"token string\">\"<span class=\"token entity\" title=\"\\b\">\\b</span>(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])<span class=\"token entity\" title=\"\\b\">\\b</span>\"</span></pre></td></tr><tr><td data-num=\"7\"></td><td><pre><span class=\"token keyword\">if</span> <span class=\"token punctuation\">[</span> <span class=\"token variable\"><span class=\"token variable\">`</span><span class=\"token builtin class-name\">echo</span> $IP <span class=\"token operator\">|</span> <span class=\"token function\">egrep</span> $regex <span class=\"token operator\">|</span> <span class=\"token function\">wc</span> <span class=\"token parameter variable\">-l</span><span class=\"token variable\">`</span></span> <span class=\"token parameter variable\">-eq</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span></pre></td></tr><tr><td data-num=\"8\"></td><td><pre> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">[</span> <span class=\"token operator\">!</span> <span class=\"token parameter variable\">-f</span> <span class=\"token string\">\"<span class=\"token variable\">$home</span>/domainIP.txt\"</span> <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">then</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre> <span class=\"token function\">touch</span> <span class=\"token variable\">$home</span>/domainIP.txt</pre></td></tr><tr><td data-num=\"10\"></td><td><pre> <span class=\"token builtin class-name\">echo</span> <span class=\"token variable\">$IP</span> <span class=\"token operator\">></span> <span class=\"token variable\">$home</span>/domainIP.txt</pre></td></tr><tr><td data-num=\"11\"></td><td><pre> <span class=\"token keyword\">else</span></pre></td></tr><tr><td data-num=\"12\"></td><td><pre> <span class=\"token assignLine truncated
|
||||
"tags": [
|
||||
"Linux",
|
||||
"服务",
|
||||
"Nginx",
|
||||
"Nginx",
|
||||
"Tengine",
|
||||
"stream"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/11/24/KLineChart%E5%AE%9E%E7%8E%B0%E4%B8%80%E5%B9%85%E5%9B%BE%E4%B8%8A%E7%94%BB%E5%A4%9A%E4%B8%AA%E8%9C%A1%E7%83%9BK%E7%BA%BF/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/11/24/KLineChart%E5%AE%9E%E7%8E%B0%E4%B8%80%E5%B9%85%E5%9B%BE%E4%B8%8A%E7%94%BB%E5%A4%9A%E4%B8%AA%E8%9C%A1%E7%83%9BK%E7%BA%BF/",
|
||||
@@ -238,46 +282,6 @@
|
||||
"nagios",
|
||||
"服务监控"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "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/",
|
||||
"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": "<h4 id=\"主服务\"><a class=\"anchor\" href=\"#主服务\">#</a> 主服务</h4>\n<ol>\n<li>基础配置</li>\n</ol>\n<figure class=\"highlight yaml\"><figcaption data-lang=\"YAML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>port 6379</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>requirepass 123456(密码,建议不设置)</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>vm<span class=\"token punctuation\">-</span>enabled no (虚拟内存,内存够的情况下可以不使用)</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>bind 127.0.0.1 (注释掉,否则不能外部连接)</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>rdbchecksum no(持久化数据检查)</pre></td></tr><tr><td data-num=\"7\"></td><td><pre>list<span class=\"token punctuation\">-</span>max<span class=\"token punctuation\">-</span>ziplist<span class=\"token punctuation\">-</span>size 1024(ziplist的最大容量,正数为自己指定的大小。负数<span class=\"token punctuation\">-</span>1到<span class=\"token punctuation\">-</span>5为对应的值4到64Kb)</pre></td></tr><tr><td data-num=\"8\"></td><td><pre>list<span class=\"token punctuation\">-</span>compress<span class=\"token punctuation\">-</span>depth 20(quicklist的两端多少个node不压缩,0为全部不压缩)</pre></td></tr></table></figure><figure class=\"highlight bash\"><figcaption data-lang=\"bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">sysctl</span> <span class=\"token assign-left variable\">vm.overcommit_memory</span><span class=\"token operator\">=</span><span class=\"token number\">1</span> (立即生效)</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>修改/etc/sysctl.conf添加vm.overcommit_memory<span class=\"token operator\">=</span><span class=\"token number\">1</span>(表示内核允许分配所有的物理内存,而不管当前的内存状态如何。Redis的RDB持久化实现是folk一个子进程,然后让子进程将内存镜像dump到RDB文件中。理论上来说是需要跟父进程一样的内存空间,但是由于linux很早就支持的copy-on-write技术,所以实际上并不需要这么多的物理内存的。)</pre></td></tr></table></figure><ol start=\"2\">\n<li>禁用透明大页(影响性能)</li>\n</ol>\n<figure class=\"highlight bash\"><figcaption data-lang=\"bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>需要sudo <span class=\"token function\">su</span> 切换到root身份(sudo 没用)</pre></td></tr><tr><td data-num=\"2\"></td><td><pre><span class=\"token builtin class-name\">echo</span> never <span class=\"token operator\">></span> /sys/kernel/mm/transparent_hugepage/enabled</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>修改/etc/init.d/redis-server,加入/bin/echo never <span class=\"token operator\">></span> /sys/kernel/mm/transparent_hugepage/enabled</pre></td></tr></table></figure><ol start=\"3\">\n<li>修复 TCP 警告</li>\n</ol>\n<figure class=\"highlight bash\"><figcaption data-lang=\"bash\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre><span class=\"token function\">sysctl</span> <span class=\"token assign-left variable\">net.core.somaxconn</span><span class=\"token operator\">=</span><span class=\"token number\">1024</span>(立即生效)</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>修改/etc/sysctl.conf添加net.core.somaxconn<span class=\"token operator\">=</span><span class=\"token number\">1024</span></pre></td></tr></table></figure><ol start=\"4\">\n<li>客户端缓冲区限制</li>\n</ol>\n<figure class=\"highlight yaml\"><figcaption data-lang=\"YAML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。</pre></td></tr><tr><td data-num=\"2\"></td><td><pre>可以三种不同客户端的方式进行设置:</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>normal <span class=\"token punctuation\">-</span><span class=\"token punctuation\">></span> 正常客户端</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>slave <span class=\"token punctuation\">-</span><span class=\"token punctuation\">></span> slave 和 MONITOR 客户端</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>pubsub <span class=\"token punctuation\">-</span><span class=\"token punctuation\">></span> 至少订阅了一个 pubsub channel 或 pattern 的客户端</pre></td></tr><tr><td data-num=\"6\"></td><td><pre><span class=\"token key atrule\">语法</span> <span class=\"token punctuation\">:</span></pre></td></tr><tr><td data-numLine truncated
|
||||
"tags": [
|
||||
"Linux",
|
||||
"服务",
|
||||
"redis"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "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/",
|
||||
"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": "<h4 id=\"使用场景\"><a class=\"anchor\" href=\"#使用场景\">#</a> 使用场景</h4>\n<p> 在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:</p>\n<figure class=\"highlight yaml\"><figcaption data-lang=\"YAML\"></figcaption><table><tr><td data-num=\"1\"></td><td><pre>server <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"2\"></td><td><pre>\tlisten port ssl http2;</pre></td></tr><tr><td data-num=\"3\"></td><td><pre>\tserver_name xxx.com;</pre></td></tr><tr><td data-num=\"4\"></td><td><pre>\tssl_certificate_key /xxx.key;</pre></td></tr><tr><td data-num=\"5\"></td><td><pre>\tssl_certificate /xxx.pem;</pre></td></tr><tr><td data-num=\"6\"></td><td><pre>\tproxy_cookie_path ~(.<span class=\"token important\">*)</span> \"$1; SameSite=None; secure; httponly\";</pre></td></tr><tr><td data-num=\"7\"></td><td><pre></pre></td></tr><tr><td data-num=\"8\"></td><td><pre>\tlocation / <span class=\"token punctuation\">{</span></pre></td></tr><tr><td data-num=\"9\"></td><td><pre>\t\t<span class=\"token comment\">#允许镶套的方式(可以同域镶套、指定域名镶套或者所有域名镶套)</span></pre></td></tr><tr><td data-num=\"10\"></td><td><pre>\t\tadd_header X<span class=\"token punctuation\">-</span>Frame<span class=\"token punctuation\">-</span>Options ALLOWALL; <span class=\"token comment\">#允许被所有域名镶套</span></pre></td></tr><tr><td data-num=\"11\"></td><td><pre>\t\tproxy_pass http<span class=\"token punctuation\">:</span>//xxx;</pre></td></tr><tr><td data-num=\"12\"></td><td><pre>\t<span class=\"token punctuation\">}</span></pre></td></tr><tr><td data-num=\"13\"></td><td><pre><span class=\"token punctuation\">}</span></pre></td></tr></table></figure>",
|
||||
"tags": [
|
||||
"Linux",
|
||||
"服务",
|
||||
"Nginx",
|
||||
"nginx",
|
||||
"iframe",
|
||||
"cookie"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "https://blog.jingxiyuan.cn/2022/10/12/%E4%BD%BF%E7%94%A8picgo%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87%E5%88%B0chevereto/",
|
||||
"url": "https://blog.jingxiyuan.cn/2022/10/12/%E4%BD%BF%E7%94%A8picgo%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87%E5%88%B0chevereto/",
|
||||
"title": "使用PicGo上传图片到chevereto",
|
||||
"date_published": "2022-10-12T06:40:00.000Z",
|
||||
"content_html": "<h1 id=\"简介\"><a class=\"anchor\" href=\"#简介\">#</a> 简介</h1>\n<p>PicGo 是一款开源的图床管理工具,十分流行。</p>\n<p>PicGo 官方指南:<span class=\"exturl\" data-url=\"aHR0cHM6Ly9waWNnby5naXRodWIuaW8vUGljR28tRG9jL3poL2d1aWRlLw==\">PicGo | PicGo</span></p>\n<h1 id=\"配置\"><a class=\"anchor\" href=\"#配置\">#</a> 配置</h1>\n<ol>\n<li>\n<p>安装插件(需要先安装 NodeJS)<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/10/12/2022-10-12-13-24-09.png\" alt=\"\" /></p>\n</li>\n<li>\n<p>图床配置 <br />\nurl 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找<br />\n<img data-src=\"https://file.jingxiyuan.cn/images/2022/10/12/2022-10-12-13-24-51.png\" alt=\"\" /></p>\n</li>\n</ol>\n",
|
||||
"tags": [
|
||||
"Windows",
|
||||
"工具",
|
||||
"PicGo",
|
||||
"chevereto"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user