diff --git a/1970/01/01/hello-world/index.html b/1970/01/01/hello-world/index.html
deleted file mode 100644
index 7bff9cbf7..000000000
--- a/1970/01/01/hello-world/index.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
Hello World | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 Welcome to Hexo ! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub .
# Quick Start# Create a new post$ hexo new "My New Post"
-
More info: Writing
# Run server$ hexo server
-
More info: Server
# Generate static files$ hexo generate
-
More info: Generating
# Deploy to remote sites$ hexo deploy
-
More info: Deployment
更新于 2022-09-13 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/14/Hexo安装摸索/index.html b/2022/09/14/Hexo安装摸索/index.html
index 9ce4ce1e0..becedda57 100644
--- a/2022/09/14/Hexo安装摸索/index.html
+++ b/2022/09/14/Hexo安装摸索/index.html
@@ -1,4 +1,4 @@
-Hexo 安装摸索 - 踩坑 - 心得体会 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 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 hexo-renderer-marked --save
安装(md 文件渲染器,压缩 css/js/html)
npm i hexo-renderer-multi-markdown-it --save
安装(给生成的 css 文件们添加浏览器前缀)
npm i hexo-autoprefixer --save
安装(站内搜索功能)
npm i hexo-algoliasearch --save
安装(文章或站点字数及阅读时间统计)
npm i hexo-symbols-count-time --save
安装(生成 Feed 文件)
npm i hexo-feed --save
# Hexo 部分常用命令# 安装 hexo-admin(编写博客插件)admin:
+Hexo 安装摸索 - 经验分享 - 踩坑 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 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 hexo-renderer-marked --save
安装(md 文件渲染器,压缩 css/js/html)
npm i hexo-renderer-multi-markdown-it --save
安装(给生成的 css 文件们添加浏览器前缀)
npm i hexo-autoprefixer --save
安装(站内搜索功能)
npm i hexo-algoliasearch --save
安装(文章或站点字数及阅读时间统计)
npm i hexo-symbols-count-time --save
安装(生成 Feed 文件)
npm i hexo-feed --save
# Hexo 部分常用命令# 安装 hexo-admin(编写博客插件)admin:
username: username
password_hash: xxxxxx
secret: 'my super secret phrase' #用单引号包裹
@@ -12,4 +12,4 @@ hexo d
cd D:\blog
d:
@cmd /c "hexo clean&& hexo g&&hexo d&&echo success"
-
更新于 2022-09-16 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/16/chevereto图床安装/index.html b/2022/09/16/chevereto图床安装/index.html
deleted file mode 100644
index 21fd5f41e..000000000
--- a/2022/09/16/chevereto图床安装/index.html
+++ /dev/null
@@ -1 +0,0 @@
-极空间 chevereto 图床 docker 版安装 - 踩坑 - 心得体会 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 安装准备需要先安装好 mysql 数据库
选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文
本文介绍使用的是 linuxserver_chevereto 的镜像
需要预先创建好给 chevereto 使用的库、账户、密码
* 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样
# 容器配置映射路径(不要放在高速盘,否则会有权限问题)
端口
环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错)
# 初始化配置使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置)
管理员配置(注意 website 配置选择个人,除非需要提供给其它人注册)
默认上传大小是 2M,可通过修改 php.ini 配置提升(路径 /etc/php7/php.ini 查找 upload_max_filesize 和 post_max_size 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。
# 安装完成作为图片管理和链接分享服务完全够用。图片链接 url 支持的也很全面。 更新于 2022-10-18 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/16/极空间chevereto图床docker版安装/index.html b/2022/09/16/极空间chevereto图床docker版安装/index.html
new file mode 100644
index 000000000..3fc7ed0a0
--- /dev/null
+++ b/2022/09/16/极空间chevereto图床docker版安装/index.html
@@ -0,0 +1 @@
+极空间 chevereto 图床 docker 版安装 - 经验分享 - 踩坑 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 安装准备需要先安装好 mysql 数据库
选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文
本文介绍使用的是 linuxserver_chevereto 的镜像
需要预先创建好给 chevereto 使用的库、账户、密码
* 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样
# 容器配置映射路径(不要放在高速盘,否则会有权限问题)
端口
环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错)
# 初始化配置使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置)
管理员配置(注意 website 配置选择个人,除非需要提供给其它人注册)
默认上传大小是 2M,可通过修改 php.ini 配置提升(路径 /etc/php7/php.ini 查找 upload_max_filesize 和 post_max_size 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。
# 安装完成作为图片管理和链接分享服务完全够用。图片链接 url 支持的也很全面。 更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html
deleted file mode 100644
index cd7010c01..000000000
--- a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-Hexo + Theme.Shoka + algolia 搜索踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # Hexo + Theme.Shoka 安装安装介绍
# algolia 注册algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。
登录 algolia 后创建一个 index,名字随意记住既可。
点击右上角红点,弹出窗口点 settings 按钮。
点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。
algolia:
- appId: #Your appId
- apiKey: #Your apiKey
- adminApiKey: #Your adminApiKey
- chunkSize: 5000
- indexName: blog #"shoka"
- fields:
- - title #必须配置
- - path #必须配置
- - categories #推荐配置
- - content:strip:truncate,0,2000
- - gallery
- - photos
- - tags
-
点击 All Api Keys - New Api key 创建一个 api key,Indices 选先前让记住的 index,ACL 选下面图片中的选项。
把第 5 步中新建的 api key 填入到第 4 步中的配置中,到此已经完成了百分之九十,只需要重新编译发布即可。不过编译步骤多了一步,在 hexo g 后需要再执行 hexo algolia,至此搜索功能就大功告成了。
更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html
new file mode 100644
index 000000000..63781456d
--- /dev/null
+++ b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html
@@ -0,0 +1,15 @@
+Hexo + Theme.Shoka + algolia 搜索踩坑 - 经验分享 - 踩坑 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # Hexo + Theme.Shoka 安装安装介绍
# algolia 注册algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。
登录 algolia 后创建一个 index,名字随意记住既可。
点击右上角红点,弹出窗口点 settings 按钮。
点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。
algolia:
+ appId: #Your appId
+ apiKey: #Your apiKey
+ adminApiKey: #Your adminApiKey
+ chunkSize: 5000
+ indexName: blog #"shoka"
+ fields:
+ - title #必须配置
+ - path #必须配置
+ - categories #推荐配置
+ - content:strip:truncate,0,2000
+ - gallery
+ - photos
+ - tags
+
点击 All Api Keys - New Api key 创建一个 api key,Indices 选先前让记住的 index,ACL 选下面图片中的选项。
把第 5 步中新建的 api key 填入到第 4 步中的配置中,到此已经完成了百分之九十,只需要重新编译发布即可。不过编译步骤多了一步,在 hexo g 后需要再执行 hexo algolia,至此搜索功能就大功告成了。
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html b/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html
index ec70ca0e3..ab4698882 100644
--- a/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html
+++ b/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html
@@ -1 +1 @@
-记一次 netty-socketio 服务端连接不上的问题 - 心得体会 - 经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。
# 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O 更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+记一次 netty-socketio 服务端连接不上的问题 - 心得体会 - 经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。
# 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O 更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/22/protobuf生成js文件/index.html b/2022/09/22/protobuf生成js文件/index.html
index fd5c2f388..e922bdb99 100644
--- a/2022/09/22/protobuf生成js文件/index.html
+++ b/2022/09/22/protobuf生成js文件/index.html
@@ -1 +1 @@
-protobuf 生成 js 文件 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 下载工具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 文件
更新于 2022-09-22 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+protobuf 生成 js 文件 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 下载工具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 文件
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html b/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html
index dfd7c0562..45f82a35f 100644
--- a/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html
+++ b/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html
@@ -1,8 +1,8 @@
-解决域名 ip 变动后需要重启 nginx 的问题 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下:
location / {
+解决域名 ip 变动后需要重启 nginx 的问题 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下:
location / {
resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析
set $my_server "https://ip:port";
proxy_pass $my_server;
}
-
更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html b/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html
index 985e93b04..6e8b5ef78 100644
--- a/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html
+++ b/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html
@@ -1 +1 @@
-解决 Hexo+Shoka 背景音乐无法播放的问题 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。
解决方法如下:
到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。
fetch : function ( source ) { var list = [ ] return new Promise ( function ( resolve, reject ) { source. forEach ( function ( raw ) { var meta = utils. parse ( raw) if ( meta[ 0 ] ) { var skey = JSON . stringify ( meta) var playlist = store. get ( skey) if ( playlist) { var audioInfos = JSON . parse ( playlist) ; var neteaseStartUrl = "https://music.163.com/song/media/outer/url?id=" ; if ( meta[ 0 ] == "netease" && audioInfos && audioInfos. length> 0 && ! audioInfos[ 0 ] . url. startsWith ( neteaseStartUrl) ) { jQuery. ajax ( { url : audioInfos[ 0 ] . url, type : 'get' , async : false , timeout : 5000 , complete : function ( XMLHttpRequest, status ) { if ( XMLHttpRequest. status != 200 ) { audioInfos. forEach ( function ( audioInfo ) { var id = audioInfo. url. substring ( audioInfo. url. indexOf ( "id=" ) + 3 , audioInfo. url. indexOf ( "&auth=" ) ) ; audioInfo. url = neteaseStartUrl + id; audioInfo. pic = "https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200" ; } ) } list. push . apply ( list, audioInfos) ; resolve ( list) ; } } ) ; } else { list. push . apply ( list, audioInfos) ; resolve ( list) ; } } else { fetch ( 'https://api.i-meto.com/meting/api?server=' + meta[ 0 ] + '&type=' + meta[ 1 ] + '&id=' + meta[ 2 ] + '&r=' + Math. random ( ) ) . then ( function ( response ) { return response. json ( ) } ) . then ( function ( json ) { store. set ( skey, JSON . stringify ( json) ) list. push . apply ( list, json) ; resolve ( list) ; } ) . catch ( function ( ex ) { } ) } } else { list. push ( raw) ; resolve ( list) ; } } ) } ) }
更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+解决 Hexo+Shoka 背景音乐无法播放的问题 - 踩坑 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。
解决方法如下:
到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。
fetch : function ( source ) { var list = [ ] return new Promise ( function ( resolve, reject ) { source. forEach ( function ( raw ) { var meta = utils. parse ( raw) if ( meta[ 0 ] ) { var skey = JSON . stringify ( meta) var playlist = store. get ( skey) if ( playlist) { var audioInfos = JSON . parse ( playlist) ; var neteaseStartUrl = "https://music.163.com/song/media/outer/url?id=" ; if ( meta[ 0 ] == "netease" && audioInfos && audioInfos. length> 0 && ! audioInfos[ 0 ] . url. startsWith ( neteaseStartUrl) ) { jQuery. ajax ( { url : audioInfos[ 0 ] . url, type : 'get' , async : false , timeout : 5000 , complete : function ( XMLHttpRequest, status ) { if ( XMLHttpRequest. status != 200 ) { audioInfos. forEach ( function ( audioInfo ) { var id = audioInfo. url. substring ( audioInfo. url. indexOf ( "id=" ) + 3 , audioInfo. url. indexOf ( "&auth=" ) ) ; audioInfo. url = neteaseStartUrl + id; audioInfo. pic = "https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200" ; } ) } list. push . apply ( list, audioInfos) ; resolve ( list) ; } } ) ; } else { list. push . apply ( list, audioInfos) ; resolve ( list) ; } } else { fetch ( 'https://api.i-meto.com/meting/api?server=' + meta[ 0 ] + '&type=' + meta[ 1 ] + '&id=' + meta[ 2 ] + '&r=' + Math. random ( ) ) . then ( function ( response ) { return response. json ( ) } ) . then ( function ( json ) { store. set ( skey, JSON . stringify ( json) ) list. push . apply ( list, json) ; resolve ( list) ; } ) . catch ( function ( ex ) { } ) } } else { list. push ( raw) ; resolve ( list) ; } } ) } ) }
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/27/nginx负载均衡配置/index.html b/2022/09/27/nginx负载均衡配置/index.html
index 7880b92d5..bc75b61b8 100644
--- a/2022/09/27/nginx负载均衡配置/index.html
+++ b/2022/09/27/nginx负载均衡配置/index.html
@@ -1,4 +1,4 @@
-nginx 负载均衡配置 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # nginx 负载均衡配置轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
upstream my_server {
+nginx 负载均衡配置 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # nginx 负载均衡配置轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
upstream my_server {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
}
@@ -60,4 +60,4 @@ server {
}
}
-
动静分离 把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。
更新于 2022-09-27 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
动静分离 把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/09/28/深深的挫败和无助感/index.html b/2022/09/28/深深的挫败和无助感/index.html
index e3f5028f8..97dd87e4e 100644
--- a/2022/09/28/深深的挫败和无助感/index.html
+++ b/2022/09/28/深深的挫败和无助感/index.html
@@ -1 +1 @@
-深深的挫败和无助感 - 心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+深深的挫败和无助感 - 心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/06/Nginx配置iframe访问/index.html b/2022/10/06/Nginx配置iframe访问/index.html
index 5b5c40929..c64947b82 100644
--- a/2022/10/06/Nginx配置iframe访问/index.html
+++ b/2022/10/06/Nginx配置iframe访问/index.html
@@ -1,6 +1,6 @@
-Nginx 配置 iframe 访问 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # X-Frame-Options 响应头配置详解X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数:
1、 DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
2、SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
3、ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
4、ALLOWALL
表示该页面可以在任何来源的 frame 中展示。
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。正常情况下我们通常使用 SAMEORIGIN 参数。
# Apache 配置需要把下面这行添加到'site' 的配置中
Header always append X-Frame-Options SAMEORIGIN
+Nginx 配置 iframe 访问 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # X-Frame-Options 响应头配置详解X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数:
1、 DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
2、SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
3、ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
4、ALLOWALL
表示该页面可以在任何来源的 frame 中展示。
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。正常情况下我们通常使用 SAMEORIGIN 参数。
# Apache 配置需要把下面这行添加到'site' 的配置中
Header always append X-Frame-Options SAMEORIGIN
# Nginx 配置需要添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置项中,个人来讲喜欢配置在‘server’ 中
正常情况下都是使用 SAMEORIGIN 参数,允许同域嵌套
add_header X-Frame-Options SAMEORIGIN;
允许单个域名 iframe 嵌套
add_header X-Frame-Options ALLOW-FROM http://xxx.com/;
允许多个域名 iframe 嵌套,注意这里是用逗号分隔
add_header X-Frame-Options "ALLOW-FROM http://xxx.com/,https://xxx.com/";
允许任何域名 iframe 嵌套
add_header X-Frame-Options ALLOWALL;
-
# Tomcat 配置在‘conf/web.xml’填加以下配置
< filter> < filter-name> httpHeaderSecurity</ filter-name> < filter-class> org.apache.catalina.filters.HttpHeaderSecurityFilter</ filter-class> < init-param> < param-name> antiClickJackingOption</ param-name> < param-value> SAMEORIGIN</ param-value> </ init-param> < async-supported> true</ async-supported> </ filter> < filter-mapping> < filter-name> httpHeaderSecurity</ filter-name> < url-pattern> /*</ url-pattern> < dispatcher> REQUEST</ dispatcher> < dispatcher> FORWARD</ dispatcher> </ filter-mapping>
# IIS 配置添加下面的配置到 ‘Web.config’文件中
< system.webServer> < httpProtocol> < customHeaders> < add name = " X-Frame-Options" value = " SAMEORIGIN" /> </ customHeaders> </ httpProtocol> </ system.webServer>
更新于 2022-10-08 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
# Tomcat 配置在‘conf/web.xml’填加以下配置
< filter> < filter-name> httpHeaderSecurity</ filter-name> < filter-class> org.apache.catalina.filters.HttpHeaderSecurityFilter</ filter-class> < init-param> < param-name> antiClickJackingOption</ param-name> < param-value> SAMEORIGIN</ param-value> </ init-param> < async-supported> true</ async-supported> </ filter> < filter-mapping> < filter-name> httpHeaderSecurity</ filter-name> < url-pattern> /*</ url-pattern> < dispatcher> REQUEST</ dispatcher> < dispatcher> FORWARD</ dispatcher> </ filter-mapping>
# IIS 配置添加下面的配置到 ‘Web.config’文件中
< system.webServer> < httpProtocol> < customHeaders> < add name = " X-Frame-Options" value = " SAMEORIGIN" /> </ customHeaders> </ httpProtocol> </ system.webServer>
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/11/svn库转git库/index.html b/2022/10/11/svn库转git库/index.html
index 90a5c713d..b27d5b253 100644
--- a/2022/10/11/svn库转git库/index.html
+++ b/2022/10/11/svn库转git库/index.html
@@ -1,5 +1,5 @@
-svn 库转 git 库 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 前期准备首先安装好 svn 和 git 工具。
# svn 转 git1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt
+svn 库转 git 库 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 前期准备首先安装好 svn 和 git 工具。
# svn 转 git1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt
然后会在目录下生成文件 users.txt 样式如:zhansan = 张三 zhansan@xxx.com 。
2、新建个文件夹,将生成的 users.txt 放入新建的文件夹,然后在新建的文件夹中右键选中 gitbash 弹出窗口后执行下面命令(https://svn_project_url/ 为 svn 库的 url),拉取 svn 代码到本地新建文件夹中。
git svn clone https://svn_project_url/ --no-metadata --no-minimize-url --authors-file=users.txt
期间可能会弹出 svn 的账户密码验证窗口,正确输入即可。
# 推送项目到 git 库1、在 gitbash 窗口 cd 到 git 项目文件夹中执行以下命令把 git 仓库地址加入到 remote 中(https://git_project_url/ 为 git 库的 url)。
git remote add origin https://git_project_url/
2、push 项目到 git 库中。
git push origin master
-
更新于 2022-10-11 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/12/使用picgo上传图片到chevereto/index.html b/2022/10/12/使用picgo上传图片到chevereto/index.html
index 0a548f6b7..f995ccb3f 100644
--- a/2022/10/12/使用picgo上传图片到chevereto/index.html
+++ b/2022/10/12/使用picgo上传图片到chevereto/index.html
@@ -1 +1 @@
-使用 PicGo 上传图片到 chevereto - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 简介PicGo 是一款开源的图床管理工具,十分流行。
PicGo 官方指南:PicGo | PicGo
# 配置安装插件(需要先安装 NodeJS)
图床配置 url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
更新于 2022-10-12 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+使用 PicGo 上传图片到 chevereto - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 简介PicGo 是一款开源的图床管理工具,十分流行。
PicGo 官方指南:PicGo | PicGo
# 配置安装插件(需要先安装 NodeJS)
图床配置 url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/14/允许跨域获取cookies方法/index.html b/2022/10/14/允许跨域获取cookies方法/index.html
index e84d24f24..94b9ee07a 100644
--- a/2022/10/14/允许跨域获取cookies方法/index.html
+++ b/2022/10/14/允许跨域获取cookies方法/index.html
@@ -1,4 +1,4 @@
-允许跨域获取 cookie 的方法 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 使用场景在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:
server {
+允许跨域获取 cookie 的方法 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 使用场景在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:
server {
listen port ssl http2;
server_name xxx.com;
ssl_certificate_key /xxx.key;
@@ -11,4 +11,4 @@
proxy_pass http://xxx;
}
}
-
更新于 2022-10-14 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/17/redis主从基础配置记录/index.html b/2022/10/17/redis主从基础配置记录/index.html
index ffe1e9aac..fcd9b5969 100644
--- a/2022/10/17/redis主从基础配置记录/index.html
+++ b/2022/10/17/redis主从基础配置记录/index.html
@@ -1,4 +1,4 @@
-redis 主从基础配置 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 主服务基础配置 port 6379
+redis 主从基础配置 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 主服务基础配置 port 6379
requirepass 123456(密码,建议不设置)
vm-enabled no (虚拟内存,内存够的情况下可以不使用)
maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)
@@ -74,4 +74,4 @@ redis-cli config set stop-writes-on-bgsave-error no
sudo vim /etc/redis/redis.conf把stop-writes-on-bgsave-error改为no
修改系统 sudo vim /etc/sysctl.conf加入vm.overcommit_memory=1
sudo sysctl vm.overcommit_memory=1
-
更新于 2022-10-17 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/18/nagios安装与配置/index.html b/2022/10/18/nagios安装与配置/index.html
deleted file mode 100644
index 1d696e472..000000000
--- a/2022/10/18/nagios安装与配置/index.html
+++ /dev/null
@@ -1,219 +0,0 @@
-搭建 nagios 监控 - 心得体会 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 监控端服务安装与配置nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts 目录下配置需要被监控的主机信息 etc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令) # 被监控端服务安装与配置被监控端需要安装 nrpe 被监控端需要把监控端的命令写入到 nrpe 的配置文件中 被监控端需要把命令执行脚本放入 libexec 目录中 被监控端自动安装脚本(可借鉴) 1、请先修改脚本中的服务端IP。
-2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令,弹出选择窗口后选择no。
-3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录,目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。
-
-#!/bin/bash
-#服务端ip
-SERVER_IP=10.10.10.121
-#安装目录
-INSTALL_HOME=`pwd`
-#安装ubuntu版本
-INSTALL_UBUNTU()
-{
- sudo apt-get update
- sudo apt-get install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev wget openssl
-
- cd /tmp
- #wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
- cp $INSTALL_HOME/Ubuntu/nrpe.tar.gz ./
- tar xzf nrpe.tar.gz
-
- cd /tmp/nrpe-nrpe-4.0.3/
- sudo ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
- sudo make all
-
- sudo make install-groups-users
-
- sudo make install
-
- sudo make install-config
-
- sudo sh -c "echo >> /etc/services"
- sudo sh -c "sudo echo '# Nagios services' >> /etc/services"
- sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
-
- #判断系统是高版本还是低版本
- VERSION=`lsb_release -r --short`
- IS_LOW_VERSION=`echo "$VERSION < 15" | bc`
-
- if [ $IS_LOW_VERSION = 1 ]; then
- #低版本
- sudo make install-init
- else
- #高版本
- sudo make install-init
- sudo systemctl enable nrpe.service
- fi
-
- sudo mkdir -p /etc/ufw/applications.d
- sudo sh -c "echo '[NRPE]' > /etc/ufw/applications.d/nagios"
- sudo sh -c "echo 'title=Nagios Remote Plugin Executor' >> /etc/ufw/applications.d/nagios"
- sudo sh -c "echo 'description=Allows remote execution of Nagios plugins' >> /etc/ufw/applications.d/nagios"
- sudo sh -c "echo 'ports=5666/tcp' >> /etc/ufw/applications.d/nagios"
- sudo ufw allow NRPE
- sudo ufw reload
-
- sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"
-
- cd $INSTALL_HOME
- sudo cp ./sh/* /usr/local/nagios/libexec/
- sudo chmod +xr /usr/local/nagios/libexec/*
-
- sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- NETWORK_INDEX=1
- for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do
- if [ $NETWORK_NAME != 'lo' ]; then
- sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"
- NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
- fi
- done
-
- if [ $IS_LOW_VERSION = 1 ]; then
- #低版本
- sudo start nrpe
- else
- #高版本
- sudo systemctl start nrpe.service
- fi
-}
-
-#安装centos版本
-INSTALL_CENTOS()
-{
- yum install -y gcc glibc glibc-common openssl openssl-devel perl wget
-
- cd /tmp
- #wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
- cp $INSTALL_HOME/CentOS/nrpe.tar.gz ./
- tar xzf nrpe.tar.gz
-
- cd /tmp/nrpe-nrpe-4.0.3/
- ./configure --enable-command-args
- make all
-
- make install-groups-users
-
- make install
-
- make install-config
-
- echo >> /etc/services
- echo '# Nagios services' >> /etc/services
- echo 'nrpe 5666/tcp' >> /etc/services
-
- #判断系统是高版本还是低版本
- VERSION=`rpm -q centos-release|cut -d- -f3`
- #安装bc命令
- yum -y install bc
- IS_LOW_VERSION=`echo "$VERSION < 7" | bc`
-
- if [ $IS_LOW_VERSION = 1 ]; then
- #低版本
- make install-init
-
- iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
- service iptables save
- ip6tables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
- service ip6tables save
- else
- #高版本
- make install-init
- systemctl enable nrpe.service
-
- firewall-cmd --zone=public --add-port=5666/tcp
- firewall-cmd --zone=public --add-port=5666/tcp --permanent
- fi
-
- sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"
-
- cd $INSTALL_HOME
- sudo cp ./sh/* /usr/local/nagios/libexec/
- sudo chmod +xr /usr/local/nagios/libexec/*
-
- sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg"
- sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"
- NETWORK_INDEX=1
- for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do
- if [ $NETWORK_NAME != 'lo' ]; then
- sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"
- NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
- fi
- done
-
- if [ $IS_LOW_VERSION = 1 ]; then
- #低版本
- if [ $(echo "$VERSION < 6" | bc) -eq 1 ]; then
- service nrpe start
- else
- start nrpe
- fi
- else
- #高版本
- systemctl start nrpe.service
- fi
-}
-
-#安装其它版本
-INSTALL_OTHER()
-{
- echo "Not supported at the moment."
-}
-
-#根据不同系统安装不同版本
-INSTALL()
-{
- if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
- DISTRO='CentOS'
- PM='yum'
- INSTALL_CENTOS
- elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then
- DISTRO='RHEL'
- PM='yum'
- INSTALL_OTHER
- elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then
- DISTRO='Aliyun'
- PM='yum'
- INSTALL_OTHER
- elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then
- DISTRO='Fedora'
- PM='yum'
- INSTALL_OTHER
- elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then
- DISTRO='Debian'
- PM='apt'
- INSTALL_OTHER
- elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then
- DISTRO='Ubuntu'
- PM='apt'
- INSTALL_UBUNTU
- elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then
- DISTRO='Raspbian'
- PM='apt'
- INSTALL_OTHER
- else
- echo "unknow linux."
- exit 1
- fi
- echo $DISTRO
-}
-
-INSTALL
-
-exit 0
-
# 常见问题监控日志未写入 mysql(可能是 ndoutils 服务不正常导致)。采用以下脚本命令解决 #!/bin/bash
-sudo rm -f /usr/local/nagios/var/ndo2db.pid
-sudo rm -f /usr/local/nagios/var/ndo.sock
-sudo systemctl restart ndo2db.service
-sudo systemctl status ndo2db.service
-
更新于 2022-10-18 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/18/搭建nagios监控/index.html b/2022/10/18/搭建nagios监控/index.html
new file mode 100644
index 000000000..a6f34187c
--- /dev/null
+++ b/2022/10/18/搭建nagios监控/index.html
@@ -0,0 +1,219 @@
+搭建 nagios 监控 - 经验分享 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 监控端服务安装与配置nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts 目录下配置需要被监控的主机信息 etc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令) # 被监控端服务安装与配置被监控端需要安装 nrpe 被监控端需要把监控端的命令写入到 nrpe 的配置文件中 被监控端需要把命令执行脚本放入 libexec 目录中 被监控端自动安装脚本(可借鉴) 1、请先修改脚本中的服务端IP。
+2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令,弹出选择窗口后选择no。
+3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录,目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。
+
+#!/bin/bash
+#服务端ip
+SERVER_IP=10.10.10.121
+#安装目录
+INSTALL_HOME=`pwd`
+#安装ubuntu版本
+INSTALL_UBUNTU()
+{
+ sudo apt-get update
+ sudo apt-get install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev wget openssl
+
+ cd /tmp
+ #wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
+ cp $INSTALL_HOME/Ubuntu/nrpe.tar.gz ./
+ tar xzf nrpe.tar.gz
+
+ cd /tmp/nrpe-nrpe-4.0.3/
+ sudo ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
+ sudo make all
+
+ sudo make install-groups-users
+
+ sudo make install
+
+ sudo make install-config
+
+ sudo sh -c "echo >> /etc/services"
+ sudo sh -c "sudo echo '# Nagios services' >> /etc/services"
+ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
+
+ #判断系统是高版本还是低版本
+ VERSION=`lsb_release -r --short`
+ IS_LOW_VERSION=`echo "$VERSION < 15" | bc`
+
+ if [ $IS_LOW_VERSION = 1 ]; then
+ #低版本
+ sudo make install-init
+ else
+ #高版本
+ sudo make install-init
+ sudo systemctl enable nrpe.service
+ fi
+
+ sudo mkdir -p /etc/ufw/applications.d
+ sudo sh -c "echo '[NRPE]' > /etc/ufw/applications.d/nagios"
+ sudo sh -c "echo 'title=Nagios Remote Plugin Executor' >> /etc/ufw/applications.d/nagios"
+ sudo sh -c "echo 'description=Allows remote execution of Nagios plugins' >> /etc/ufw/applications.d/nagios"
+ sudo sh -c "echo 'ports=5666/tcp' >> /etc/ufw/applications.d/nagios"
+ sudo ufw allow NRPE
+ sudo ufw reload
+
+ sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"
+
+ cd $INSTALL_HOME
+ sudo cp ./sh/* /usr/local/nagios/libexec/
+ sudo chmod +xr /usr/local/nagios/libexec/*
+
+ sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ NETWORK_INDEX=1
+ for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do
+ if [ $NETWORK_NAME != 'lo' ]; then
+ sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"
+ NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
+ fi
+ done
+
+ if [ $IS_LOW_VERSION = 1 ]; then
+ #低版本
+ sudo start nrpe
+ else
+ #高版本
+ sudo systemctl start nrpe.service
+ fi
+}
+
+#安装centos版本
+INSTALL_CENTOS()
+{
+ yum install -y gcc glibc glibc-common openssl openssl-devel perl wget
+
+ cd /tmp
+ #wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
+ cp $INSTALL_HOME/CentOS/nrpe.tar.gz ./
+ tar xzf nrpe.tar.gz
+
+ cd /tmp/nrpe-nrpe-4.0.3/
+ ./configure --enable-command-args
+ make all
+
+ make install-groups-users
+
+ make install
+
+ make install-config
+
+ echo >> /etc/services
+ echo '# Nagios services' >> /etc/services
+ echo 'nrpe 5666/tcp' >> /etc/services
+
+ #判断系统是高版本还是低版本
+ VERSION=`rpm -q centos-release|cut -d- -f3`
+ #安装bc命令
+ yum -y install bc
+ IS_LOW_VERSION=`echo "$VERSION < 7" | bc`
+
+ if [ $IS_LOW_VERSION = 1 ]; then
+ #低版本
+ make install-init
+
+ iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
+ service iptables save
+ ip6tables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
+ service ip6tables save
+ else
+ #高版本
+ make install-init
+ systemctl enable nrpe.service
+
+ firewall-cmd --zone=public --add-port=5666/tcp
+ firewall-cmd --zone=public --add-port=5666/tcp --permanent
+ fi
+
+ sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"
+
+ cd $INSTALL_HOME
+ sudo cp ./sh/* /usr/local/nagios/libexec/
+ sudo chmod +xr /usr/local/nagios/libexec/*
+
+ sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg"
+ sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"
+ NETWORK_INDEX=1
+ for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do
+ if [ $NETWORK_NAME != 'lo' ]; then
+ sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"
+ NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
+ fi
+ done
+
+ if [ $IS_LOW_VERSION = 1 ]; then
+ #低版本
+ if [ $(echo "$VERSION < 6" | bc) -eq 1 ]; then
+ service nrpe start
+ else
+ start nrpe
+ fi
+ else
+ #高版本
+ systemctl start nrpe.service
+ fi
+}
+
+#安装其它版本
+INSTALL_OTHER()
+{
+ echo "Not supported at the moment."
+}
+
+#根据不同系统安装不同版本
+INSTALL()
+{
+ if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
+ DISTRO='CentOS'
+ PM='yum'
+ INSTALL_CENTOS
+ elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then
+ DISTRO='RHEL'
+ PM='yum'
+ INSTALL_OTHER
+ elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then
+ DISTRO='Aliyun'
+ PM='yum'
+ INSTALL_OTHER
+ elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then
+ DISTRO='Fedora'
+ PM='yum'
+ INSTALL_OTHER
+ elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then
+ DISTRO='Debian'
+ PM='apt'
+ INSTALL_OTHER
+ elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then
+ DISTRO='Ubuntu'
+ PM='apt'
+ INSTALL_UBUNTU
+ elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then
+ DISTRO='Raspbian'
+ PM='apt'
+ INSTALL_OTHER
+ else
+ echo "unknow linux."
+ exit 1
+ fi
+ echo $DISTRO
+}
+
+INSTALL
+
+exit 0
+
# 常见问题监控日志未写入 mysql(可能是 ndoutils 服务不正常导致)。采用以下脚本命令解决 #!/bin/bash
+sudo rm -f /usr/local/nagios/var/ndo2db.pid
+sudo rm -f /usr/local/nagios/var/ndo.sock
+sudo systemctl restart ndo2db.service
+sudo systemctl status ndo2db.service
+
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/2022/10/19/长了一岁/index.html b/2022/10/19/长了一岁/index.html
new file mode 100644
index 000000000..47b6bdbe1
--- /dev/null
+++ b/2022/10/19/长了一岁/index.html
@@ -0,0 +1 @@
+又长了一岁 - 心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
更新于 2022-10-19 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/404.html b/404.html
index 95bbfcca8..a20ade892 100644
--- a/404.html
+++ b/404.html
@@ -1 +1 @@
-Σ( ° △ °|||)︴404!何も見えない | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+Σ( ° △ °|||)︴404!何も見えない | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/about/me.html b/about/me.html
index 225028631..4261f3dc4 100644
--- a/about/me.html
+++ b/about/me.html
@@ -1 +1 @@
-| Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 个人信息姓名:李海涛 性别:男 学历:本科 生肖:鼠 星座:天秤 邮箱:lht518@vip.qq.com # 个人爱好# 编程语言# 项目经历 - 近期智能量化决策交易系统
该项目主要用于对期货、股票等进行智能化交易,会根据用户事先设置的规则决策是否买卖,并给出信号、收益、最大回撤等详细的统计报告及分析报表。 该项目采用Spring Cloud微服务解决方案,主要功能模块分为行情采集、策略计算、交易信号处理、账户交易服务、ctp网关、策略统计、消息推送等 该项目使用IntellIJ做为主要开发工具,前端使用vue框架,图表采用tradingview、highchart等。后端使用mybatis、mysql对部分用户、策略、配置信息进行存储,kafka做为行情数据、交易信号等消息中间件。使用redis存储当日分时行情等临时数据,mongodb用于存储分析结果、信号历史,hbase存储期货行情等详细数据。使用netty框架实现实时消息推送。
IWB-EX 交易平台
该项目主要依托流行的区块链技术进行白酒的销售。以虚拟币为货币,白酒为等价商品进行交易。当虚拟币价格过低时用户可以选择实物白酒进行提货。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、thymeleaf等。
废品回收管理平台
该项目主要为废品回收公司提供废品的进出库管理和统计,并打印详细价格单据等。该项目分为两个平台,给用户使用的入库填表平台和给企业管理人员使用的审核、管理后台。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、freemarker等。
更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
+| Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 # 个人信息姓名:李海涛 性别:男 学历:本科 生肖:鼠 星座:天秤 邮箱:lht518@vip.qq.com # 个人爱好# 编程语言# 项目经历 - 近期智能量化决策交易系统
该项目主要用于对期货、股票等进行智能化交易,会根据用户事先设置的规则决策是否买卖,并给出信号、收益、最大回撤等详细的统计报告及分析报表。 该项目采用Spring Cloud微服务解决方案,主要功能模块分为行情采集、策略计算、交易信号处理、账户交易服务、ctp网关、策略统计、消息推送等 该项目使用IntellIJ做为主要开发工具,前端使用vue框架,图表采用tradingview、highchart等。后端使用mybatis、mysql对部分用户、策略、配置信息进行存储,kafka做为行情数据、交易信号等消息中间件。使用redis存储当日分时行情等临时数据,mongodb用于存储分析结果、信号历史,hbase存储期货行情等详细数据。使用netty框架实现实时消息推送。
IWB-EX 交易平台
该项目主要依托流行的区块链技术进行白酒的销售。以虚拟币为货币,白酒为等价商品进行交易。当虚拟币价格过低时用户可以选择实物白酒进行提货。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、thymeleaf等。
废品回收管理平台
该项目主要为废品回收公司提供废品的进出库管理和统计,并打印详细价格单据等。该项目分为两个平台,给用户使用的入库填表平台和给企业管理人员使用的审核、管理后台。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、freemarker等。
更新于 2022-09-28 阅读次数 次
赞赏请我喝[茶]~( ̄▽ ̄)~*
微信支付
支付宝
\ No newline at end of file
diff --git a/archives/1970/01/index.html b/archives/1970/01/index.html
deleted file mode 100644
index 7e1b74f15..000000000
--- a/archives/1970/01/index.html
+++ /dev/null
@@ -1 +0,0 @@
-1970 年 / 01 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/1970/index.html b/archives/1970/index.html
deleted file mode 100644
index a3040ebbe..000000000
--- a/archives/1970/index.html
+++ /dev/null
@@ -1 +0,0 @@
-1970 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/2022/09/index.html b/archives/2022/09/index.html
index a1a06e75d..c40d3a16d 100644
--- a/archives/2022/09/index.html
+++ b/archives/2022/09/index.html
@@ -1 +1 @@
-2022 年 / 09 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+2022 年 / 09 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/2022/10/index.html b/archives/2022/10/index.html
index 190767090..eb8105fbc 100644
--- a/archives/2022/10/index.html
+++ b/archives/2022/10/index.html
@@ -1 +1 @@
-2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/2022/index.html b/archives/2022/index.html
index e0781a39e..dffaa638b 100644
--- a/archives/2022/index.html
+++ b/archives/2022/index.html
@@ -1 +1 @@
-2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/2022/page/2/index.html b/archives/2022/page/2/index.html
index 8910b20f9..7db48339e 100644
--- a/archives/2022/page/2/index.html
+++ b/archives/2022/page/2/index.html
@@ -1 +1 @@
-2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/archives/index.html b/archives/index.html
index 696adf3f7..8472ae336 100644
--- a/archives/index.html
+++ b/archives/index.html
@@ -1 +1 @@
-归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/atom.xml b/atom.xml
index 14fc8ea86..57a80b108 100644
--- a/atom.xml
+++ b/atom.xml
@@ -8,7 +8,7 @@
Hito li
- 2022-10-18T01:39:00.000Z
+ 2022-10-19T00:51:00.000Z
@@ -17,9 +17,20 @@
- https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
+ https://blog.jingxiyuan.cn/2022/10/19/%E9%95%BF%E4%BA%86%E4%B8%80%E5%B2%81/
+ 又长了一岁
+
+ <p>一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油<br />
+!</p>
+
+
+
+ 2022-10-19T00:51:00.000Z
+
+
+ https://blog.jingxiyuan.cn/2022/10/18/%E6%90%AD%E5%BB%BAnagios%E7%9B%91%E6%8E%A7/
搭建nagios监控
-
+
<h4 id="监控端服务安装与配置"><a class="anchor" href="#监控端服务安装与配置">#</a> 监控端服务安装与配置</h4>
<ol>
<li>nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见<span class="exturl" data-url="aHR0cHM6Ly9zdXBwb3J0Lm5hZ2lvcy5jb20va2Iv">官网</span></li>
@@ -266,7 +277,6 @@ sudo systemctl status ndo2db.service
-
2022-10-18T01:39:00.000Z
@@ -381,6 +391,7 @@ sudo sysctl vm.overcommit_memory=1
</code></pre>
+
2022-10-17T06:07:00.000Z
@@ -406,6 +417,7 @@ sudo sysctl vm.overcommit_memory=1
</code></pre>
+
@@ -432,6 +444,7 @@ url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配
</ol>
+
2022-10-12T06:40:00.000Z
@@ -460,6 +473,7 @@ url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配
</code></pre>
+
2022-10-11T02:40:00.000Z
@@ -504,6 +518,7 @@ X-Frame-Options 三个参数:</p>
<p> 添加下面的配置到 ‘Web.config’文件中</p>
<figure class="highlight xml"><figcaption data-lang="XML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>system.webServer</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>httpProtocol</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>customHeaders</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>add</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>X-Frame-Options<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>SAMEORIGIN<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>customHeaders</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>httpProtocol</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>system.webServer</span><span class="token punctuation">></span></span></pre></td></tr></table></figure>
+
2022-10-06T15:46:00.000Z
@@ -516,6 +531,7 @@ X-Frame-Options 三个参数:</p>
+
2022-09-28T08:02:00.000Z
@@ -611,6 +627,7 @@ server {
<p> <em>把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。</em></p>
+
2022-09-27T06:45:00.000Z
@@ -624,6 +641,8 @@ server {
<p><em> 到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。</em></p>
<figure class="highlight js"><figcaption data-lang="JavaScript"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token function-variable function">fetch</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">source</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token keyword">var</span> list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span></pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">Promise</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">resolve<span class="token punctuation">,</span> reject</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="5"></td><td><pre> source<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">raw</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token keyword">var</span> meta <span class="token operator">=</span> utils<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span>raw<span class="token punctuation">)</span></pre></td></tr><tr><td data-num="7"></td><td><pre> <span class="token keyword">if</span><span class="token punctuation">(</span>meta<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="8"></td><td><pre> <span class="token keyword">var</span> skey <span class="token operator">=</span> <span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span>meta<span class="token punctuation">)</span></pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token keyword">var</span> playlist <span class="token operator">=</span> store<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>skey<span class="token punctuation">)</span></pre></td></tr><tr><td data-num="10"></td><td><pre> <span class="token keyword">if</span><span class="token punctuation">(</span>playlist<span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token comment">// 自己修改 - start</span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token keyword">var</span> audioInfos <span class="token operator">=</span> <span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span>playlist<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="13"></td><td><pre> <span class="token keyword">var</span> neteaseStartUrl <span class="token operator">=</span> <span class="token string">"https://music.163.com/song/media/outer/url?id="</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="14"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>meta<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string">"netease"</span> <span class="token operator">&&</span> audioInfos <span class="token operator">&&</span> audioInfos<span class="token punctuation">.</span>length<span class="token operator">></span><span class="token number">0</span> <span class="token operator">&&</span> <span class="token operator">!</span>audioInfos<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>url<span class="token punctuation">.</span><span class="token function">startsWith</span><span class="token punctuation">(</span>neteaseStartUrl<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token comment">// 如果是网易音乐就自己构建 url</span></pre></td></tr><tr><td data-num="15"></td><td><pre> jQuery<span class="token punctuation">.</span><span class="token function">ajax</span><span class="token punctuation">(</span><span class="token punctuation">{</span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token literal-property property">url</span><span class="token operator">:</span> audioInfos<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>url<span class="token punctuation">,</span></pre></td></tr><tr><td data-num="17"></td><td><pre> <span class="token literal-property property">type</span><span class="token operator">:</span> <span class="token string">'get'</span><span class="token punctuation">,</span></pre></td></tr><tr><td data-num="18"></td><td><pre> <span class="token literal-property property">async</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span></pre></td></tr><tr><td data-num="19"></td><td><pre> <span class="token literal-property property">timeout</span><span class="token operator">:</span> <span class="token number">5000</span><span class="token punctuation">,</span></pre></td></tr><tr><td data-num="20"></td><td><pre> <span class="token function-variable function">complete</span> <span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">XMLHttpRequest<span class="token punctuation">,</span> status</span><span class="token punctuation">)</span><span class="token punctuation">{</span></pre></td></tr><tr><td data-num="21"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>XMLHttpRequest<span class="token punctuation">.</span>status <span class="token operator">!=</span> <span class="token number">200</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="22"></td><td><pre> audioInfos<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">audioInfo</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="23"></td><td><pre> <span class="token keyword">var</span> id <span class="token operator">=</span> audioInfo<span class="token punctuation">.</span>url<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span>audioInfo<span class="token punctuation">.</span>url<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"id="</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">3</span><span class="token punctuation">,</span> audioInfo<span class="token punctuation">.</span>url<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"&auth="</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="24"></td><td><pre> audioInfo<span class="token punctuation">.</span>url <span class="token operator">=</span> neteaseStartUrl <span class="token operator">+</span> id<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="25"></td><td><pre> audioInfo<span class="token punctuation">.</span>pic <span class="token operator">=</span> <span class="token string">"https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="26"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="27"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="28"></td><td><pre> list<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">.</span><span class="token function">apply</span><span class="token punctuation">(</span>list<span class="token punctuation">,</span> audioInfos<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="29"></td><td><pre> <span class="token function">resolve</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="30"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="31"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="32"></td><td><pre> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="33"></td><td><pre> list<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">.</span><span class="token function">apply</span><span class="token punctuation">(</span>list<span class="token punctuation">,</span> audioInfos<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="34"></td><td><pre> <span class="token function">resolve</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="35"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="36"></td><td><pre> <span class="token comment">// 自己修改 - end</span></pre></td></tr><tr><td data-num="37"></td><td><pre> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="38"></td><td><pre> <span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">'https://api.i-meto.com/meting/api?server='</span><span class="token operator">+</span>meta<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token string">'&type='</span><span class="token operator">+</span>meta<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token string">'&id='</span><span class="token operator">+</span>meta<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token string">'&r='</span><span class="token operator">+</span> Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="39"></td><td><pre> <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">response</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="40"></td><td><pre> <span class="token keyword">return</span> response<span class="token punctuation">.</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="41"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">json</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="42"></td><td><pre> store<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>skey<span class="token punctuation">,</span> <span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span>json<span class="token punctuation">)</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="43"></td><td><pre> list<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">.</span><span class="token function">apply</span><span class="token punctuation">(</span>list<span class="token punctuation">,</span> json<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="44"></td><td><pre> <span class="token function">resolve</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="45"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">ex</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="46"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="47"></td><td><pre> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="48"></td><td><pre> list<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>raw<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="49"></td><td><pre> <span class="token function">resolve</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="50"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="51"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="52"></td><td><pre> <span class="token punctuation">}</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="53"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr></table></figure>
+
+
@@ -645,6 +664,7 @@ server {
</code></pre>
+
2022-09-23T08:17:00.000Z
@@ -668,6 +688,7 @@ server {
</ol>
+
2022-09-22T02:30:00.000Z
@@ -687,9 +708,9 @@ server {
2022-09-21T01:46:00.000Z
- https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91-1/
+ https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/
Hexo + Theme.Shoka + algolia搜索踩坑
-
+
<h1 id="hexo-themeshoka安装"><a class="anchor" href="#hexo-themeshoka安装">#</a> Hexo + Theme.Shoka 安装</h1>
<p> <a href="https://blog.jingxiyuan.cn/2022/09/14/Hexo%E5%AE%89%E8%A3%85%E6%91%B8%E7%B4%A2/">安装介绍</a></p>
<h1 id="algolia注册"><a class="anchor" href="#algolia注册">#</a> algolia 注册</h1>
@@ -734,12 +755,19 @@ server {
</li>
</ol>
+
+
+
+
+
+
+
2022-09-17T15:12:00.000Z
- https://blog.jingxiyuan.cn/2022/09/16/chevereto%E5%9B%BE%E5%BA%8A%E5%AE%89%E8%A3%85/
+ https://blog.jingxiyuan.cn/2022/09/16/%E6%9E%81%E7%A9%BA%E9%97%B4chevereto%E5%9B%BE%E5%BA%8Adocker%E7%89%88%E5%AE%89%E8%A3%85/
极空间chevereto图床docker版安装
-
+
<h1 id="安装准备"><a class="anchor" href="#安装准备">#</a> 安装准备</h1>
<ol>
<li>
@@ -798,8 +826,8 @@ server {
</ol>
-
-
+
+
@@ -923,35 +951,10 @@ d:
</code></pre>
-
-
+
+
- 2022-09-14T04:23:55.000Z
-
-
- https://blog.jingxiyuan.cn/1970/01/01/hello-world/
- Hello World
-
- <p>Welcome to <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvLw==">Hexo</span>! This is your very first post. Check <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mv">documentation</span> for more info. If you get any problems when using Hexo, you can find the answer in <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3MvdHJvdWJsZXNob290aW5nLmh0bWw=">troubleshooting</span> or you can ask me on <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2hleG9qcy9oZXhvL2lzc3Vlcw==">GitHub</span>.</p>
-<h2 id="quick-start"><a class="anchor" href="#quick-start">#</a> Quick Start</h2>
-<h3 id="create-a-new-post"><a class="anchor" href="#create-a-new-post">#</a> Create a new post</h3>
-<pre><code class="language-bash">$ hexo new "My New Post"
-</code></pre>
-<p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvd3JpdGluZy5odG1s">Writing</span></p>
-<h3 id="run-server"><a class="anchor" href="#run-server">#</a> Run server</h3>
-<pre><code class="language-bash">$ hexo server
-</code></pre>
-<p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvc2VydmVyLmh0bWw=">Server</span></p>
-<h3 id="generate-static-files"><a class="anchor" href="#generate-static-files">#</a> Generate static files</h3>
-<pre><code class="language-bash">$ hexo generate
-</code></pre>
-<p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3MvZ2VuZXJhdGluZy5odG1s">Generating</span></p>
-<h3 id="deploy-to-remote-sites"><a class="anchor" href="#deploy-to-remote-sites">#</a> Deploy to remote sites</h3>
-<pre><code class="language-bash">$ hexo deploy
-</code></pre>
-<p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvb25lLWNvbW1hbmQtZGVwbG95bWVudC5odG1s">Deployment</span></p>
-
- 1970-01-01T00:00:00.000Z
+ 2022-09-14T04:23:00.000Z
diff --git a/categories/index.html b/categories/index.html
index fbbcefda7..079745ba1 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -1 +1 @@
-全部分类 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+全部分类 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/心情/index.html b/categories/心情/index.html
index bfc8d4417..cadeb3c1b 100644
--- a/categories/心情/index.html
+++ b/categories/心情/index.html
@@ -1 +1 @@
-分类:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/index.html b/categories/技术分享/index.html
index f54a8147f..87aba80a3 100644
--- a/categories/技术分享/index.html
+++ b/categories/技术分享/index.html
@@ -1 +1 @@
-分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 10-18
10-17
10-14
10-12
10-11
10-06
09-27
09-26
09-23
09-22
\ No newline at end of file
+分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 10-18
10-17
10-14
10-12
10-11
10-06
09-27
09-26
09-23
09-22
\ No newline at end of file
diff --git a/categories/技术分享/page/2/index.html b/categories/技术分享/page/2/index.html
index ae0a75573..50672c4ba 100644
--- a/categories/技术分享/page/2/index.html
+++ b/categories/技术分享/page/2/index.html
@@ -1 +1 @@
-分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/心得体会/index.html b/categories/技术分享/心得体会/index.html
deleted file mode 100644
index a19c6c961..000000000
--- a/categories/技术分享/心得体会/index.html
+++ /dev/null
@@ -1 +0,0 @@
-分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/心得体会/踩坑/index.html b/categories/技术分享/心得体会/踩坑/index.html
deleted file mode 100644
index af44eccf4..000000000
--- a/categories/技术分享/心得体会/踩坑/index.html
+++ /dev/null
@@ -1 +0,0 @@
-分类:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/经验分享/index.html b/categories/技术分享/经验分享/index.html
index f7ac62db9..44b919d34 100644
--- a/categories/技术分享/经验分享/index.html
+++ b/categories/技术分享/经验分享/index.html
@@ -1 +1 @@
-分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 10-18
10-17
10-14
10-12
10-11
10-06
09-27
踩坑 ( 1 ) 09-26
09-23
09-22
\ No newline at end of file
diff --git a/categories/技术分享/经验分享/心得体会/index.html b/categories/技术分享/经验分享/心得体会/index.html
deleted file mode 100644
index e7e31416b..000000000
--- a/categories/技术分享/经验分享/心得体会/index.html
+++ /dev/null
@@ -1 +0,0 @@
-分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/经验分享/踩坑/index.html b/categories/技术分享/经验分享/踩坑/index.html
new file mode 100644
index 000000000..3af4f6f39
--- /dev/null
+++ b/categories/技术分享/经验分享/踩坑/index.html
@@ -0,0 +1 @@
+分类:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/踩坑/index.html b/categories/技术分享/踩坑/index.html
new file mode 100644
index 000000000..fb60194e8
--- /dev/null
+++ b/categories/技术分享/踩坑/index.html
@@ -0,0 +1 @@
+分类:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/技术分享/踩坑/经验分享/index.html b/categories/技术分享/踩坑/经验分享/index.html
new file mode 100644
index 000000000..654a533e9
--- /dev/null
+++ b/categories/技术分享/踩坑/经验分享/index.html
@@ -0,0 +1 @@
+分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/经验分享/index.html b/categories/经验分享/index.html
index 0a3c0b35e..33de23de2 100644
--- a/categories/经验分享/index.html
+++ b/categories/经验分享/index.html
@@ -1 +1 @@
-分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/categories/经验分享/心得体会/index.html b/categories/经验分享/心得体会/index.html
index 88b443f4e..d84a322aa 100644
--- a/categories/经验分享/心得体会/index.html
+++ b/categories/经验分享/心得体会/index.html
@@ -1 +1 @@
-分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/feed.json b/feed.json
index 7b3c7b130..9cf13f874 100644
--- a/feed.json
+++ b/feed.json
@@ -7,15 +7,25 @@
"home_page_url": "https://blog.jingxiyuan.cn",
"items": [
{
- "id": "https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/",
- "url": "https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/",
+ "id": "https://blog.jingxiyuan.cn/2022/10/19/%E9%95%BF%E4%BA%86%E4%B8%80%E5%B2%81/",
+ "url": "https://blog.jingxiyuan.cn/2022/10/19/%E9%95%BF%E4%BA%86%E4%B8%80%E5%B2%81/",
+ "title": "又长了一岁",
+ "date_published": "2022-10-19T00:51:00.000Z",
+ "content_html": "一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 \n!
\n",
+ "tags": [
+ "心情",
+ "心情"
+ ]
+ },
+ {
+ "id": "https://blog.jingxiyuan.cn/2022/10/18/%E6%90%AD%E5%BB%BAnagios%E7%9B%91%E6%8E%A7/",
+ "url": "https://blog.jingxiyuan.cn/2022/10/18/%E6%90%AD%E5%BB%BAnagios%E7%9B%91%E6%8E%A7/",
"title": "搭建nagios监控",
"date_published": "2022-10-18T01:39:00.000Z",
"content_html": "# 监控端服务安装与配置 \n\nnagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 \nnagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 \netc/objects/commands.cfg 用于保存 nagios 默认监控命令 \netc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) \n \netc/objects/hosts 目录下配置需要被监控的主机信息 \n \netc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令) \n \n \n# 被监控端服务安装与配置 \n\n被监控端需要安装 nrpe \n被监控端需要把监控端的命令写入到 nrpe 的配置文件中 \n被监控端需要把命令执行脚本放入 libexec 目录中 \n被监控端自动安装脚本(可借鉴) \n \n1、请先修改脚本中的服务端IP。\n2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令,弹出选择窗口后选择no。\n3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录,目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。\n\n#!/bin/bash\n#服务端ip\nSERVER_IP=10.10.10.121\n#安装目录\nINSTALL_HOME=`pwd`\n#安装ubuntu版本\nINSTALL_UBUNTU()\n{\n\tsudo apt-get update\n\tsudo apt-get install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev wget openssl\n\t\n\tcd /tmp\n\t#wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz\n\tcp $INSTALL_HOME/Ubuntu/nrpe.tar.gz ./\n\ttar xzf nrpe.tar.gz\n\n\tcd /tmp/nrpe-nrpe-4.0.3/\n\tsudo ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/\n\tsudo make all\n\n\tsudo make install-groups-users\n\n\tsudo make install\n\n\tsudo make install-config\n\n\tsudo sh -c "echo >> /etc/services"\n\tsudo sh -c "sudo echo '# Nagios services' >> /etc/services"\n\tsudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"\n\t\n\t#判断系统是高版本还是低版本\n\tVERSION=`lsb_release -r --short`\n\tIS_LOW_VERSION=`echo "$VERSION < 15" | bc`\n\n\tif [ $IS_LOW_VERSION = 1 ]; then\n\t\t#低版本\n\t\tsudo make install-init\n\telse\n\t\t#高版本\n\t\tsudo make install-init\n\t\tsudo systemctl enable nrpe.service\n\tfi\n\t\n\tsudo mkdir -p /etc/ufw/applications.d\n\tsudo sh -c "echo '[NRPE]' > /etc/ufw/applications.d/nagios"\n\tsudo sh -c "echo 'title=Nagios Remote Plugin Executor' >> /etc/ufw/applications.d/nagios"\n\tsudo sh -c "echo 'description=Allows remote execution of Nagios plugins' >> /etc/ufw/applications.d/nagios"\n\tsudo sh -c "echo 'ports=5666/tcp' >> /etc/ufw/applications.d/nagios"\n\tsudo ufw allow NRPE\n\tsudo ufw reload\n\t\n\tsudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"\n\t\n\tcd $INSTALL_HOME\n\tsudo cp ./sh/* /usr/local/nagios/libexec/\n\tsudo chmod +xr /usr/local/nagios/libexec/*\n\t\n\tsudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \\$ARG1\\$' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tNETWORK_INDEX=1\n\tfor NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\\t]*//g' | sed 's/[:]*$//g'`;do\n\t\t\tif [ $NETWORK_NAME != 'lo' ]; then\n\t\t\t\t\tsudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"\n\t\t\t\t\tNETWORK_INDEX=`expr $NETWORK_INDEX + 1 `\n\t\t\tfi\n\tdone\n\t\n\tif [ $IS_LOW_VERSION = 1 ]; then\n\t\t#低版本\n\t\tsudo start nrpe\n\telse\n\t\t#高版本\n\t\tsudo systemctl start nrpe.service\n\tfi\n}\n\n#安装centos版本\nINSTALL_CENTOS()\n{\n\tyum install -y gcc glibc glibc-common openssl openssl-devel perl wget\n\n\tcd /tmp\n\t#wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz\n\tcp $INSTALL_HOME/CentOS/nrpe.tar.gz ./\n\ttar xzf nrpe.tar.gz\n\n\tcd /tmp/nrpe-nrpe-4.0.3/\n\t./configure --enable-command-args\n\tmake all\n\n\tmake install-groups-users\n\n\tmake install\n\n\tmake install-config\n\n\techo >> /etc/services\n\techo '# Nagios services' >> /etc/services\n\techo 'nrpe 5666/tcp' >> /etc/services\n\t\n\t#判断系统是高版本还是低版本\n\tVERSION=`rpm -q centos-release|cut -d- -f3`\n\t#安装bc命令\n\tyum -y install bc\n\tIS_LOW_VERSION=`echo "$VERSION < 7" | bc`\n\n\tif [ $IS_LOW_VERSION = 1 ]; then\n\t\t#低版本\n\t\tmake install-init\n\t\t\n\t\tiptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT\n\t\tservice iptables save\n\t\tip6tables -I INPUT -p tcp --destination-port 5666 -j ACCEPT\n\t\tservice ip6tables save\n\telse\n\t\t#高版本\n\t\tmake install-init\n\t\tsystemctl enable nrpe.service\n\t\t\n\t\tfirewall-cmd --zone=public --add-port=5666/tcp\n\t\tfirewall-cmd --zone=public --add-port=5666/tcp --permanent\n\tfi\n\t\n\tsudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg"\n\t\n\tcd $INSTALL_HOME\n\tsudo cp ./sh/* /usr/local/nagios/libexec/\n\tsudo chmod +xr /usr/local/nagios/libexec/*\n\t\n\tsudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \\$ARG1\\$' >> /usr/local/nagios/etc/nrpe.cfg"\n\tsudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg"\n\tNETWORK_INDEX=1\n\tfor NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\\t]*//g' | sed 's/[:]*$//g'`;do\n\t\t\tif [ $NETWORK_NAME != 'lo' ]; then\n\t\t\t\t\tsudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg"\n\t\t\t\t\tNETWORK_INDEX=`expr $NETWORK_INDEX + 1 `\n\t\t\tfi\n\tdone\n\t\n\tif [ $IS_LOW_VERSION = 1 ]; then\n\t\t#低版本\n\t\tif [ $(echo "$VERSION < 6" | bc) -eq 1 ]; then\n\t\t\tservice nrpe start\n\t\telse\n\t\t\tstart nrpe\n\t\tfi\n\telse\n\t\t#高版本\n\t\tsystemctl start nrpe.service\n\tfi\n}\n\n#安装其它版本\nINSTALL_OTHER()\n{\n\techo "Not supported at the moment."\n}\n\n#根据不同系统安装不同版本\nINSTALL()\n{\n\tif grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then\n\t\tDISTRO='CentOS'\n PM='yum'\n\t\tINSTALL_CENTOS\n elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then\n DISTRO='RHEL'\n PM='yum'\n\t\tINSTALL_OTHER\n elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then\n DISTRO='Aliyun'\n PM='yum'\n\t\tINSTALL_OTHER\n elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then\n DISTRO='Fedora'\n PM='yum'\n\t\tINSTALL_OTHER\n elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then\n DISTRO='Debian'\n PM='apt'\n\t\tINSTALL_OTHER\n elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then\n DISTRO='Ubuntu'\n PM='apt'\n\t\tINSTALL_UBUNTU\n elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then\n DISTRO='Raspbian'\n PM='apt'\n\t\tINSTALL_OTHER\n else\n echo "unknow linux."\n exit 1\n fi\n echo $DISTRO\n}\n\nINSTALL\n\nexit 0\n
\n# 常见问题 \n\n监控日志未写入 mysql(可能是 ndoutils 服务不正常导致)。采用以下脚本命令解决 \n \n#!/bin/bash\nsudo rm -f /usr/local/nagios/var/ndo2db.pid\nsudo rm -f /usr/local/nagios/var/ndo.sock\nsudo systemctl restart ndo2db.service\nsudo systemctl status ndo2db.service\n
\n",
"tags": [
"技术分享",
"经验分享",
- "心得体会",
"nagios",
"服务监控"
]
@@ -28,6 +38,7 @@
"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": [
"技术分享",
+ "经验分享",
"redis"
]
},
@@ -39,6 +50,7 @@
"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": [
"技术分享",
+ "经验分享",
"nginx",
"iframe",
"cookie"
@@ -52,6 +64,7 @@
"content_html": "# 简介 \nPicGo 是一款开源的图床管理工具,十分流行。
\nPicGo 官方指南:PicGo | PicGo
\n# 配置 \n\n\n安装插件(需要先安装 NodeJS) \n
\n \n\n图床配置 \nurl 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找 \n
\n \n \n",
"tags": [
"技术分享",
+ "经验分享",
"PicGo",
"chevereto"
]
@@ -64,6 +77,7 @@
"content_html": "# 前期准备 \n 首先安装好 svn 和 git 工具。
\n# svn 转 git \n1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下:
\nsvn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt\n
\n 然后会在目录下生成文件 users.txt 样式如:zhansan = 张三 zhansan@xxx.com 。
\n2、新建个文件夹,将生成的 users.txt 放入新建的文件夹,然后在新建的文件夹中右键选中 gitbash 弹出窗口后执行下面命令(https://svn_project_url/ 为 svn 库的 url),拉取 svn 代码到本地新建文件夹中。
\ngit svn clone https://svn_project_url/ --no-metadata --no-minimize-url --authors-file=users.txt\n
\n 期间可能会弹出 svn 的账户密码验证窗口,正确输入即可。
\n# 推送项目到 git 库 \n1、在 gitbash 窗口 cd 到 git 项目文件夹中执行以下命令把 git 仓库地址加入到 remote 中(https://git_project_url/ 为 git 库的 url)。
\ngit remote add origin https://git_project_url/\n
\n2、push 项目到 git 库中。
\ngit push origin master\n
\n",
"tags": [
"技术分享",
+ "经验分享",
"svn",
"git"
]
@@ -76,6 +90,7 @@
"content_html": "# X-Frame-Options 响应头配置详解 \n X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 \nX-Frame-Options 三个参数:
\n1、 DENY
\n 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
\n2、SAMEORIGIN
\n 表示该页面可以在相同域名页面的 frame 中展示。
\n3、ALLOW-FROM uri
\n 表示该页面可以在指定来源的 frame 中展示。
\n4、ALLOWALL
\n 表示该页面可以在任何来源的 frame 中展示。
\n 换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。正常情况下我们通常使用 SAMEORIGIN 参数。
\n# Apache 配置 \n 需要把下面这行添加到'site' 的配置中
\n Header always append X-Frame-Options SAMEORIGIN\n
\n# Nginx 配置 \n 需要添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置项中,个人来讲喜欢配置在‘server’ 中
\n 正常情况下都是使用 SAMEORIGIN 参数,允许同域嵌套
\n add_header X-Frame-Options SAMEORIGIN;\n
\n 允许单个域名 iframe 嵌套
\n add_header X-Frame-Options ALLOW-FROM http://xxx.com/;\n
\n 允许多个域名 iframe 嵌套,注意这里是用逗号分隔
\n add_header X-Frame-Options "ALLOW-FROM http://xxx.com/,https://xxx.com/";\n
\n 允许任何域名 iframe 嵌套
\n add_header X-Frame-Options ALLOWALL;\n
\n# Tomcat 配置 \n 在‘conf/web.xml’填加以下配置
\n< filter> < filter-name> httpHeaderSecurity</ filter-name> < filter-class> org.apache.catalina.filters.HttpHeaderSecurityFilter</ filter-class> < init-param> < param-name> antiClickJackingOption</ param-name> < param-value> SAMEORIGIN</ param-value> </ init-param> < async-supported> true</ async-supported> </ filter> < filter-mapping> < filter-name> httpHeaderSecurity</ filter-name> < url-pattern> /*</ url-pattern> < dispatcher> REQUEST</ dispatcher> < dispatcher> FORWARD</ dispatcher> </ filter-mapping>
# IIS 配置 \n 添加下面的配置到 ‘Web.config’文件中
\n< system.webServer> < httpProtocol> < customHeaders> < add name = \" X-Frame-Options\" value = \" SAMEORIGIN\" /> </ customHeaders> </ httpProtocol> </ system.webServer>
",
"tags": [
"技术分享",
+ "经验分享",
"nginx",
"iframe"
]
@@ -88,7 +103,8 @@
"content_html": " 一个月都过去了,工作还没有着落!
\n",
"tags": [
"心情",
- "郁闷"
+ "郁闷",
+ "心情"
]
},
{
@@ -99,6 +115,7 @@
"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": [
"技术分享",
+ "经验分享",
"nginx",
"负载均衡"
]
@@ -111,6 +128,8 @@
"content_html": " 今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。
\n 解决方法如下:
\n 到 themes\\shoka\\source\\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。
\nfetch : function ( source ) { var list = [ ] return new Promise ( function ( resolve, reject ) { source. forEach ( function ( raw ) { var meta = utils. parse ( raw) if ( meta[ 0 ] ) { var skey = JSON . stringify ( meta) var playlist = store. get ( skey) if ( playlist) { \t\t\t // 自己修改 - start \t\t\t var audioInfos = JSON . parse ( playlist) ; \t\t\t var neteaseStartUrl = \"https://music.163.com/song/media/outer/url?id=\" ; \t\t\t if ( meta[ 0 ] == \"netease\" && audioInfos && audioInfos. length> 0 && ! audioInfos[ 0 ] . url. startsWith ( neteaseStartUrl) ) { // 如果是网易音乐就自己构建 url \t\t\t\t jQuery. ajax ( { \t\t\t\t\t url : audioInfos[ 0 ] . url, \t\t\t\t\t type : 'get' , \t\t\t\t\t async : false , \t\t\t\t\t timeout : 5000 , \t\t\t\t\t complete : function ( XMLHttpRequest, status ) { \t\t\t\t\t\t if ( XMLHttpRequest. status != 200 ) { \t\t\t\t\t\t\t audioInfos. forEach ( function ( audioInfo ) { \t\t\t\t\t\t\t\t var id = audioInfo. url. substring ( audioInfo. url. indexOf ( \"id=\" ) + 3 , audioInfo. url. indexOf ( \"&auth=\" ) ) ; \t\t\t\t\t\t\t\t audioInfo. url = neteaseStartUrl + id; \t\t\t\t\t\t\t\t audioInfo. pic = \"https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200\" ; \t\t\t\t\t\t\t } ) \t\t\t\t\t\t } \t\t\t\t\t\t list. push . apply ( list, audioInfos) ; \t\t\t\t\t\t resolve ( list) ; \t\t\t\t\t } \t\t\t\t } ) ; \t\t\t } else { \t\t\t\t list. push . apply ( list, audioInfos) ; \t\t\t\t resolve ( list) ; \t\t\t } \t\t\t // 自己修改 - end } else { fetch ( 'https://api.i-meto.com/meting/api?server=' + meta[ 0 ] + '&type=' + meta[ 1 ] + '&id=' + meta[ 2 ] + '&r=' + Math. random ( ) ) . then ( function ( response ) { return response. json ( ) } ) . then ( function ( json ) { store. set ( skey, JSON . stringify ( json) ) list. push . apply ( list, json) ; resolve ( list) ; } ) . catch ( function ( ex ) { } ) } } else { list. push ( raw) ; resolve ( list) ; } } ) } ) }
",
"tags": [
"技术分享",
+ "经验分享",
+ "踩坑",
"博客",
"Hexo",
"Shoka",
@@ -125,6 +144,7 @@
"content_html": " 今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下:
\nlocation / {\t\n\tresolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析\n\n\tset $my_server "https://ip:port";\n\n\tproxy_pass $my_server;\n}\n
\n",
"tags": [
"技术分享",
+ "经验分享",
"nginx"
]
},
@@ -136,6 +156,7 @@
"content_html": "# 下载工具 \nprotoc-3.19.5-win64.zip
\n# 生成 js 文件 \n\n\n把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\\bin 目录下
\n \n\ncmd 到相同的 bin 目录下
\n \n\n执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件
\n \n \n",
"tags": [
"技术分享",
+ "经验分享",
"protobuf",
"js"
]
@@ -155,23 +176,31 @@
]
},
{
- "id": "https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91-1/",
- "url": "https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91-1/",
+ "id": "https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/",
+ "url": "https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/",
"title": "Hexo + Theme.Shoka + algolia搜索踩坑",
"date_published": "2022-09-17T15:12:00.000Z",
"content_html": "# Hexo + Theme.Shoka 安装 \n 安装介绍
\n# algolia 注册 \n\n\nalgolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。
\n \n\n登录 algolia 后创建一个 index,名字随意记住既可。
\n
\n \n\n点击右上角红点,弹出窗口点 settings 按钮。
\n
\n \n\n点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。
\n \n \nalgolia:\n appId: #Your appId\n apiKey: #Your apiKey\n adminApiKey: #Your adminApiKey\n chunkSize: 5000\n indexName: blog #"shoka"\n fields:\n - title #必须配置\n - path #必须配置\n - categories #推荐配置\n - content:strip:truncate,0,2000\n - gallery\n - photos\n - tags\n
\n\n\n点击 All Api Keys - New Api key 创建一个 api key,Indices 选先前让记住的 index,ACL 选下面图片中的选项。
\n
\n \n\n把第 5 步中新建的 api key 填入到第 4 步中的配置中,到此已经完成了百分之九十,只需要重新编译发布即可。不过编译步骤多了一步,在 hexo g 后需要再执行 hexo algolia,至此搜索功能就大功告成了。
\n \n \n",
- "tags": []
+ "tags": [
+ "技术分享",
+ "踩坑",
+ "经验分享",
+ "博客",
+ "Hexo",
+ "Shoka",
+ "algolia"
+ ]
},
{
- "id": "https://blog.jingxiyuan.cn/2022/09/16/chevereto%E5%9B%BE%E5%BA%8A%E5%AE%89%E8%A3%85/",
- "url": "https://blog.jingxiyuan.cn/2022/09/16/chevereto%E5%9B%BE%E5%BA%8A%E5%AE%89%E8%A3%85/",
+ "id": "https://blog.jingxiyuan.cn/2022/09/16/%E6%9E%81%E7%A9%BA%E9%97%B4chevereto%E5%9B%BE%E5%BA%8Adocker%E7%89%88%E5%AE%89%E8%A3%85/",
+ "url": "https://blog.jingxiyuan.cn/2022/09/16/%E6%9E%81%E7%A9%BA%E9%97%B4chevereto%E5%9B%BE%E5%BA%8Adocker%E7%89%88%E5%AE%89%E8%A3%85/",
"title": "极空间chevereto图床docker版安装",
"date_published": "2022-09-16T00:04:00.000Z",
"content_html": "# 安装准备 \n\n\n需要先安装好 mysql 数据库
\n \n\n选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文
\n \n\n本文介绍使用的是 linuxserver_chevereto 的镜像
\n \n\n需要预先创建好给 chevereto 使用的库、账户、密码
\n \n \n * 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样 \n \n \n
\n# 容器配置 \n\n\n映射路径(不要放在高速盘,否则会有权限问题) \n
\n \n\n端口 \n
\n \n\n环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) \n
\n \n \n# 初始化配置 \n\n\n使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置) \n
\n \n\n管理员配置(注意 website 配置选择个人,除非需要提供给其它人注册) \n \n
\n \n\n默认上传大小是 2M,可通过修改 php.ini 配置提升(路径 /etc/php7/php.ini 查找 upload_max_filesize 和 post_max_size 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。
\n \n \n# 安装完成 \n\n作为图片管理和链接分享服务完全够用。图片链接 url 支持的也很全面。 \n \n \n \n \n",
"tags": [
"技术分享",
- "心得体会",
"踩坑",
+ "经验分享",
"docker",
"极空间",
"图床",
@@ -182,23 +211,15 @@
"id": "https://blog.jingxiyuan.cn/2022/09/14/Hexo%E5%AE%89%E8%A3%85%E6%91%B8%E7%B4%A2/",
"url": "https://blog.jingxiyuan.cn/2022/09/14/Hexo%E5%AE%89%E8%A3%85%E6%91%B8%E7%B4%A2/",
"title": "Hexo安装摸索",
- "date_published": "2022-09-14T04:23:55.000Z",
+ "date_published": "2022-09-14T04:23:00.000Z",
"content_html": "# hexo 博客安装 \n\n\n安装 nodejs
\n \n\n安装 git
\n \n\n安装 hexo(windows 需进入 git bash)
\nnpm install -g hexo-cli
\n \n\n初始化博客目录
\nhexo init blog
\n \n\n进入博客目录
\ncd blog
\n \n\n初始化 hexo 到博客目录
\nnpm install
\n \n \n# shoka 主题安装 \n\n\n下载主题
\ngit clone
https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka
\n \n\n卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器
\nnpm un hexo-renderer-marked --save
\n \n\n安装(md 文件渲染器,压缩 css/js/html)
\nnpm i hexo-renderer-multi-markdown-it --save
\n \n\n安装(给生成的 css 文件们添加浏览器前缀)
\nnpm i hexo-autoprefixer --save
\n \n\n安装(站内搜索功能)
\nnpm i hexo-algoliasearch --save
\n \n\n安装(文章或站点字数及阅读时间统计)
\nnpm i hexo-symbols-count-time --save
\n \n\n安装(生成 Feed 文件)
\nnpm i hexo-feed --save
\n \n \n# Hexo 部分常用命令 \n\n# 安装 hexo-admin(编写博客插件) \n\nadmin:\nusername: username\npassword_hash: xxxxxx\nsecret: 'my super secret phrase' #用单引号包裹\ndeployCommand: 'hexo_publish.sh' #windows用hexo_publish.bat,linux用hexo_publish.sh\n
\n# hexo_publish.sh \n#!/bin/bash\n\nhexo clean\nhexo g\nhexo d\n
\n# hexo_publish.bat \n@echo off\ncd D:\\blog\nd:\n@cmd /c "hexo clean&& hexo g&&hexo d&&echo success"\n
\n",
"tags": [
"技术分享",
- "心得体会",
"踩坑",
+ "经验分享",
"博客",
"Hexo"
]
- },
- {
- "id": "https://blog.jingxiyuan.cn/1970/01/01/hello-world/",
- "url": "https://blog.jingxiyuan.cn/1970/01/01/hello-world/",
- "title": "Hello World",
- "date_published": "1970-01-01T00:00:00.000Z",
- "content_html": "Welcome to Hexo ! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub .
\n# Quick Start \n# Create a new post \n$ hexo new "My New Post"\n
\nMore info: Writing
\n# Run server \n$ hexo server\n
\nMore info: Server
\n# Generate static files \n$ hexo generate\n
\nMore info: Generating
\n# Deploy to remote sites \n$ hexo deploy\n
\nMore info: Deployment
\n",
- "tags": []
}
]
}
\ No newline at end of file
diff --git a/index.html b/index.html
index b3d97bb18..2c22a32b3 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 文章列表 2022-10-18 7.2k 字 7 分钟
# 监控端服务安装与配置 nagios 需要安装主程序和 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... 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...
\ No newline at end of file
+Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 文章列表 2022-10-19 101 字 1 分钟
一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
more... 2022-10-18 7.2k 字 7 分钟
# 监控端服务安装与配置 nagios 需要安装主程序和 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... 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...
\ No newline at end of file
diff --git a/page/2/index.html b/page/2/index.html
index 9dd826dd6..eaa410b37 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -1 +1 @@
-Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 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 509 字 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... 1970-01-01 368 字 1 分钟
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. # Quick Start # Create a new post $ hexo new "My New Post" More info: Writing # Run...
more...
\ No newline at end of file
+Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣 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 509 字 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 a8bff808a..d9dfd7926 100644
--- a/rss.xml
+++ b/rss.xml
@@ -10,8 +10,8 @@
hito的博客
zh-CN
- Tue, 18 Oct 2022 09:39:00 +0800
- Tue, 18 Oct 2022 09:39:00 +0800
+ Wed, 19 Oct 2022 08:51:00 +0800
+ Wed, 19 Oct 2022 08:51:00 +0800
@@ -20,12 +20,22 @@
-
-
https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
+ https://blog.jingxiyuan.cn/2022/10/19/%E9%95%BF%E4%BA%86%E4%B8%80%E5%B2%81/
+ 又长了一岁
+ https://blog.jingxiyuan.cn/2022/10/19/%E9%95%BF%E4%BA%86%E4%B8%80%E5%B2%81/
+
+
+ Wed, 19 Oct 2022 08:51:00 +0800
+
+
+ -
+
https://blog.jingxiyuan.cn/2022/10/18/%E6%90%AD%E5%BB%BAnagios%E7%9B%91%E6%8E%A7/
搭建nagios监控
- https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
+ https://blog.jingxiyuan.cn/2022/10/18/%E6%90%AD%E5%BB%BAnagios%E7%9B%91%E6%8E%A7/
-
Tue, 18 Oct 2022 09:39:00 +0800
@@ -279,6 +289,7 @@ sudo systemctl status ndo2db.service
redis主从基础配置
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/
+
Mon, 17 Oct 2022 14:07:00 +0800
允许跨域获取cookie的方法
https://blog.jingxiyuan.cn/2022/10/14/%E5%85%81%E8%AE%B8%E8%B7%A8%E5%9F%9F%E8%8E%B7%E5%8F%96cookies%E6%96%B9%E6%B3%95/
+
@@ -419,6 +431,7 @@ sudo sysctl vm.overcommit_memory=1
使用PicGo上传图片到chevereto
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/
+
Wed, 12 Oct 2022 14:40:00 +0800
@@ -444,6 +457,7 @@ url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配
svn库转git库
https://blog.jingxiyuan.cn/2022/10/11/svn%E5%BA%93%E8%BD%ACgit%E5%BA%93/
+
Tue, 11 Oct 2022 10:40:00 +0800
@@ -472,6 +486,7 @@ url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配
Nginx配置iframe访问
https://blog.jingxiyuan.cn/2022/10/06/Nginx%E9%85%8D%E7%BD%AEiframe%E8%AE%BF%E9%97%AE/
+
Thu, 06 Oct 2022 23:46:00 +0800
@@ -517,6 +532,7 @@ X-Frame-Options 三个参数:</p>
https://blog.jingxiyuan.cn/2022/09/28/%E6%B7%B1%E6%B7%B1%E7%9A%84%E6%8C%AB%E8%B4%A5%E5%92%8C%E6%97%A0%E5%8A%A9%E6%84%9F/
+
Wed, 28 Sep 2022 16:02:00 +0800
@@ -526,6 +542,7 @@ X-Frame-Options 三个参数:</p>
nginx负载均衡配置
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/
+
Tue, 27 Sep 2022 14:45:00 +0800
@@ -623,6 +640,8 @@ server {
解决Hexo+Shoka背景音乐无法播放的问题
https://blog.jingxiyuan.cn/2022/09/26/%E8%A7%A3%E5%86%B3Hexo-Shoka%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%E7%9A%84%E9%97%AE%E9%A2%98/
+
+
@@ -638,6 +657,7 @@ server {
解决域名ip变动后需要重启nginx的问题
https://blog.jingxiyuan.cn/2022/09/23/%E8%A7%A3%E5%86%B3%E5%9F%9F%E5%90%8Dip%E5%8F%98%E5%8A%A8%E5%90%8E%E9%9C%80%E8%A6%81%E9%87%8D%E5%90%AFnginx%E7%9A%84%E9%97%AE%E9%A2%98/
+
Fri, 23 Sep 2022 16:17:00 +0800
protobuf生成js文件
https://blog.jingxiyuan.cn/2022/09/22/protobuf%E7%94%9F%E6%88%90js%E6%96%87%E4%BB%B6/
+
Thu, 22 Sep 2022 10:30:00 +0800
@@ -690,9 +711,16 @@ server {
]]>
-
-
https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91-1/
+ https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/
Hexo + Theme.Shoka + algolia搜索踩坑
- https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91-1/
+ https://blog.jingxiyuan.cn/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/
+
+
+
+
+
+
+
Sat, 17 Sep 2022 23:12:00 +0800
-
-
https://blog.jingxiyuan.cn/2022/09/16/chevereto%E5%9B%BE%E5%BA%8A%E5%AE%89%E8%A3%85/
+ https://blog.jingxiyuan.cn/2022/09/16/%E6%9E%81%E7%A9%BA%E9%97%B4chevereto%E5%9B%BE%E5%BA%8Adocker%E7%89%88%E5%AE%89%E8%A3%85/
极空间chevereto图床docker版安装
- https://blog.jingxiyuan.cn/2022/09/16/chevereto%E5%9B%BE%E5%BA%8A%E5%AE%89%E8%A3%85/
+ https://blog.jingxiyuan.cn/2022/09/16/%E6%9E%81%E7%A9%BA%E9%97%B4chevereto%E5%9B%BE%E5%BA%8Adocker%E7%89%88%E5%AE%89%E8%A3%85/
-
-
+
+
@@ -814,11 +842,11 @@ server {
Hexo安装摸索
https://blog.jingxiyuan.cn/2022/09/14/Hexo%E5%AE%89%E8%A3%85%E6%91%B8%E7%B4%A2/
-
-
+
+
- Wed, 14 Sep 2022 12:23:55 +0800
+ Wed, 14 Sep 2022 12:23:00 +0800
-
- -
-
https://blog.jingxiyuan.cn/1970/01/01/hello-world/
- Hello World
- https://blog.jingxiyuan.cn/1970/01/01/hello-world/
- Thu, 01 Jan 1970 08:00:00 +0800
-
diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html
index effaa2c98..0351f1bfd 100644
--- a/tags/Hexo/index.html
+++ b/tags/Hexo/index.html
@@ -1 +1 @@
-标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/PicGo/index.html b/tags/PicGo/index.html
index a3bc74971..61dd32478 100644
--- a/tags/PicGo/index.html
+++ b/tags/PicGo/index.html
@@ -1 +1 @@
-标签:PicGo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:PicGo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/Shoka/index.html b/tags/Shoka/index.html
index 63770b844..bdac70b56 100644
--- a/tags/Shoka/index.html
+++ b/tags/Shoka/index.html
@@ -1 +1 @@
-标签:Shoka | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:Shoka | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/algolia/index.html b/tags/algolia/index.html
new file mode 100644
index 000000000..fc932beb5
--- /dev/null
+++ b/tags/algolia/index.html
@@ -0,0 +1 @@
+标签:algolia | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/chevereto/index.html b/tags/chevereto/index.html
index 823fb12f5..60544d2ba 100644
--- a/tags/chevereto/index.html
+++ b/tags/chevereto/index.html
@@ -1 +1 @@
-标签:chevereto | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:chevereto | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/cookie/index.html b/tags/cookie/index.html
index c1f9fa86c..ab3b537e3 100644
--- a/tags/cookie/index.html
+++ b/tags/cookie/index.html
@@ -1 +1 @@
-标签:cookie | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:cookie | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/docker/index.html b/tags/docker/index.html
index 73df9d336..250fd1ddb 100644
--- a/tags/docker/index.html
+++ b/tags/docker/index.html
@@ -1 +1 @@
-标签:docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/git/index.html b/tags/git/index.html
index 688155dd1..190d28ea9 100644
--- a/tags/git/index.html
+++ b/tags/git/index.html
@@ -1 +1 @@
-标签:git | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:git | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/iframe/index.html b/tags/iframe/index.html
index 11d3fa315..d21398528 100644
--- a/tags/iframe/index.html
+++ b/tags/iframe/index.html
@@ -1 +1 @@
-标签:iframe | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:iframe | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/index.html b/tags/index.html
index 38ecad4e8..9ff3f08e0 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -1 +1 @@
-全部标签 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+全部标签 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/js/index.html b/tags/js/index.html
index 00024516c..b1ecc732c 100644
--- a/tags/js/index.html
+++ b/tags/js/index.html
@@ -1 +1 @@
-标签:js | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:js | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/nagios/index.html b/tags/nagios/index.html
index 4526d1e84..3d939d233 100644
--- a/tags/nagios/index.html
+++ b/tags/nagios/index.html
@@ -1 +1 @@
-标签:nagios | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:nagios | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/netty/index.html b/tags/netty/index.html
index 628d04238..f1eefa0af 100644
--- a/tags/netty/index.html
+++ b/tags/netty/index.html
@@ -1 +1 @@
-标签:netty | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:netty | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/nginx/index.html b/tags/nginx/index.html
index 37a019713..3985b199a 100644
--- a/tags/nginx/index.html
+++ b/tags/nginx/index.html
@@ -1 +1 @@
-标签:nginx | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:nginx | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/protobuf/index.html b/tags/protobuf/index.html
index 5c19b864b..c0dea9d32 100644
--- a/tags/protobuf/index.html
+++ b/tags/protobuf/index.html
@@ -1 +1 @@
-标签:protobuf | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:protobuf | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/redis/index.html b/tags/redis/index.html
index 7c22f1ea2..f9278ee0c 100644
--- a/tags/redis/index.html
+++ b/tags/redis/index.html
@@ -1 +1 @@
-标签:redis | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:redis | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/socketIO/index.html b/tags/socketIO/index.html
index cd13c1993..8188d93f5 100644
--- a/tags/socketIO/index.html
+++ b/tags/socketIO/index.html
@@ -1 +1 @@
-标签:socketIO | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:socketIO | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/svn/index.html b/tags/svn/index.html
index f6d897a1c..8c0584101 100644
--- a/tags/svn/index.html
+++ b/tags/svn/index.html
@@ -1 +1 @@
-标签:svn | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:svn | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/博客/index.html b/tags/博客/index.html
index a51091df1..9514ec3ad 100644
--- a/tags/博客/index.html
+++ b/tags/博客/index.html
@@ -1 +1 @@
-标签:博客 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:博客 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/图床/index.html b/tags/图床/index.html
index 69d5cfa9d..ac2830630 100644
--- a/tags/图床/index.html
+++ b/tags/图床/index.html
@@ -1 +1 @@
-标签:图床 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:图床 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/图片上传/index.html b/tags/图片上传/index.html
index 31d14e8d2..cfd3494af 100644
--- a/tags/图片上传/index.html
+++ b/tags/图片上传/index.html
@@ -1 +1 @@
-标签:图片上传 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:图片上传 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/心情/index.html b/tags/心情/index.html
new file mode 100644
index 000000000..06877cb85
--- /dev/null
+++ b/tags/心情/index.html
@@ -0,0 +1 @@
+标签:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/服务监控/index.html b/tags/服务监控/index.html
index a1df596f4..9dd7dc5cb 100644
--- a/tags/服务监控/index.html
+++ b/tags/服务监控/index.html
@@ -1 +1 @@
-标签:服务监控 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:服务监控 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/极空间/index.html b/tags/极空间/index.html
index db9caba5f..269030ce2 100644
--- a/tags/极空间/index.html
+++ b/tags/极空间/index.html
@@ -1 +1 @@
-标签:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/背景音乐/index.html b/tags/背景音乐/index.html
index 94b6f9e1c..d2d2af6f5 100644
--- a/tags/背景音乐/index.html
+++ b/tags/背景音乐/index.html
@@ -1 +1 @@
-标签:背景音乐 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:背景音乐 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/负载均衡/index.html b/tags/负载均衡/index.html
index ee1b37338..7bfcf44dc 100644
--- a/tags/负载均衡/index.html
+++ b/tags/负载均衡/index.html
@@ -1 +1 @@
-标签:负载均衡 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:负载均衡 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/踩坑/index.html b/tags/踩坑/index.html
index a495fde39..453eeeb0e 100644
--- a/tags/踩坑/index.html
+++ b/tags/踩坑/index.html
@@ -1 +1 @@
-标签:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
diff --git a/tags/郁闷/index.html b/tags/郁闷/index.html
index c9461bb5e..4c6cbebfc 100644
--- a/tags/郁闷/index.html
+++ b/tags/郁闷/index.html
@@ -1 +1 @@
-标签:郁闷 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file
+标签:郁闷 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file