Archives: 技术相关

Nginx配置更详细的Json格式的访问日志

2024-12-09 by Jinyang | No Comments | Filed in 技术相关

log_format main escape=json‘{“@timestamp”:”$time_iso8601″,’‘”@source”:”$server_addr”,’‘”hostname”:”$hostname”,’‘”host”:”$host”,’‘”domain”:”$server_name”,’‘”ip”:”$http_x_forwarded_for”,’‘”client”:”$remote_addr”,’‘”request_method”:”$request_method”,’‘”remote_port”:”$remote_port”,’‘”scheme”:”$scheme”,’‘”referer”:”$http_referer”,’‘”request”:”$request_uri”,’‘”args”:”$args”,’‘”request_length”:$request_length,’‘”size”:$body_bytes_sent,’‘”status”:$status,’‘”responsetime”:$request_time,’‘”upstreamtime”:”$upstream_response_time”,’‘”upstreamaddr”:”$upstream_addr”,’‘”http_user_agent”:”$http_user_agent”,’‘”http_cookie”:”$http_cookie”,’‘”https”:”$https”,’‘”ssl_protocol”:”$ssl_protocol”,’‘”ssl_cipher”:”$ssl_cipher”,’‘”x_request_id”:”$sent_http_x_request_id”,’‘”request_id”:”$request_id”‘‘}’ 通过组合这些参数,你可以记录更加详细的日志,帮助分析请求、流量、性能等各方面的信息。根据你的需求,可以灵活调整和扩展日志格式。

;jsessionid=导致的Nginx 的静态文件图片404异常处理

2024-01-15 by Jinyang | 1 Comment | Filed in 技术相关

观察nginx的error.log发现有大量的 open() 文件名 No such file or directory 的错误,原因是本应请求 https://www.huxing.com/lbsimg/50255ae7367a11ee90eb00f1f30222b6_roadmap.png 的实际请求为 https://www.huxing.com/lbsimg/50255ae7367a11ee90eb00f1f30222b6_roadmap.png;jsessionid=1A5A80F68EA0FE62C9F0E8443450C0B8 ,于是nginx就会去尝试指定目录下的文件访问 50255ae7367a11ee90eb00f1f30222b6_roadmap.png;jsessionid=1A5A80F68EA0FE62C9F0E8443450C0B8 所以就报错了 。 搜了下倒是也有类似的错误再寻求答案,但是确实没找到合适的能直接用的。经过分析尝试发现使用rewrite 比较符合预期: rewrite “^/lbsimg/([0-9a-z_]+(.png));jsessionid=.+$” /lbsimg/$1 last; 测试访问原来的404异常的页面发现可以正常浏览,nginx error.log 不再出现该404异常了。

神舟 战神 Z7M i78172D1 更换三星NVMe SSD硬盘

2023-01-29 by Jinyang | 1 Comment | Filed in 工作认真, 技术相关

2015年购入的笔记本,南征北战的做了不少项目了,买后就加了一个创见的128G的M.2接口的硬盘(TS128GMTS400),前几年自己淘宝买了个电池更换了下。 现在比较不满意的是1 不能装win11(也不想自己在折腾) 2是电池续航只能2小时多点 有时外出想写会代码时不够用, 想着还是换一个 英特尔13代的笔记本吧 (列入计划) 去年以来最大的问题是120G的C盘不够用,可能是因为各种应用 Maven的库等都塞到了C盘,迁移了几次,但是还是没过一段时间就要面临C盘空间不足的问题 浪费工作时间,想着暂时不买入新笔记本的话 还是先换个硬盘再坚持1年吧 。 拆开电脑看了下有2个M.2接口 ,其中一个支持NVMe的我还没用,这个速度更快,于是就下单了 三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议) 970 EVO Plus(MZ-V7S500B) (426元 可能不是最低价 等着用也就没太比较了) ,收到后安装好后 在系统里测试了下 速度大约1500M 可能就是这个笔记本的极限了吧。 三星官方提供了数据复制迁移软件,直接选择旧磁盘-新磁盘,复制,几分钟就结束了,于是拆了旧磁盘,但是怎么也不能从新磁盘启动,进BIOS看了下也看不到新硬盘、没办法设置选择新磁盘作为启动位置。搜了下才知道买的太早了 当时的BIOS还不支持从NVMe硬盘启动,于是又准备刷BIOS,其实还挺怕这个操作的,因为没操作过,先B站看了个视频,大概就是用一个U盘引导盘 关闭UEFI启动 后进入U盘的DOS系统里去操作。自己试了下 进入DOS后找不到复制在U盘里的文件。去贴吧看了下,发现现在直接可以在windows系统里通过GUI程序操作,于是这样就简单多了 直接下载机友的文件,界面点击下就搞定了,很忐忑的重启 进BIOS 发现真的刷新了。选择新的三星盘作为启动盘,成功。 好些年也不折腾电脑了,发现其实挺简单的。

跟踪监控nginx访问日志中的异常错误请求

2022-10-07 by Jinyang | No Comments | Filed in 技术相关

及时发现异常是系统安全重要的一环 时常分析下nginx access.log 是个好习惯 tail -F /var/log/nginx/access.log |grep -v ‘”status”: 20’ |grep -v ‘”status”: 30’    

tomcat使用logrotate自动每日切割catalina.out

2022-10-04 by Jinyang | 1 Comment | Filed in 技术相关

logrotate 是Linux系统自动的服务,nginx等也都用它来自动切割,简单可靠。 不过tomcat假如移动重命名文件后再创建文件  日志没办法继续写入的,所以要使用 copytruncate 模式 ,示例如下 : 在/etc/logrotate.d目录下新建配置文件,如 tomcat /apps/tomcat/apache-tomcat-9.*.*/logs/catalina.out{ copytruncate daily dateext nocompress missingok rotate 14 size 1500M create 640 tomcat tomcat }   测试验证服务:  /usr/sbin/logrotate -f -v /etc/logrotate.d/tomcat 需要验证1 文件自动切割了  2. catalina.out文件自动清理  并且日志还在继续写入该文件   即可 。  

配置iptables\ufw导致无法连接到主机的处理

2020-10-04 by Jinyang | No Comments | Filed in 技术相关

这个实在是有点低级的错误,提醒自己配置iptables时务必小心,尤其是执行 iptables -F清空配置时 务必小心 需要先设置默认允许才可以( 先执行 iptables -P INPUT ACCEPT )。 有了之前挂载磁盘的经验 ,还是老套路 挂载磁盘后修改配置文件: /etc/iptables/rules.v4 重启 即可。

Tags:

忘记或遗失了SSH Key文件导致无法连接到主机的处理

2020-10-04 by Jinyang | No Comments | Filed in 技术相关

还是Oracle Cloud的永久免费主机,去年918时申请的 中间被删除了 本来以为是因为是中国IP发起的申请所以删除了,后来收到邮件说是错误删除并且已经给恢复了,但是因为时间太长了 找不到登录用的key了 在web管理界面倒是可以看到主机,但是登录不进去也没用啊 。 后来就搜索了下,也有其他人类似的问题 ,比较有参考价值的文章为:https://blogs.oracle.com/cloud-infrastructure/recovering-opc-user-ssh-key-on-oracle-cloud-infrastructure 主要的原理无非就是新建一台同区域的主机,卸载旧的遗忘了key的主机的启动盘(引导卷 Boot Volume) ,在新主机上附加挂载附加卷(Attached Block Volumes) 也就是刚才那个旧机器的引导卷 ,挂载磁盘 ,修改 authorized_keys ,然后卸载磁盘,重新在旧机器挂载引导卷 。 参考官方文档基本没什么障碍。 值得感谢的是Oracle直接给的就是每个账号2个永久免费主机,真的是比较大方的。

Tags:

PKCS8 Key的密钥转为RSA Key

2020-10-04 by Jinyang | No Comments | Filed in 技术相关

在Oracle Cloud 控制台创建主机时选择的使用ssh key 登录的模式,也是公认、默认的更安全的登录方式。 但是在windows电脑上使用SecureCRT、FileZilla时使用系统生成的key文件都报错说格式不符合,在linux系统下使用正常。 本困惑的主要原因是搜了下说因为key的格式不同 用 puttygen 或 openssl转换下 就可以了,但是实际用 puttygen 打开就提示说是不支持的格式 后来证实它的确是目前不支持打开pkcs8。 使用在线工具转换后 实际使用正常。

Tags:

Cause: java.sql.SQLException: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation ‘=’

2020-09-13 by Jinyang | No Comments | Filed in 技术相关

生产服务器的MySql默认是utf8_general_ci字符集,但是有部分表格的字段是utf8_unicode_ci字符集。 按此前的处理方法,转换下其中一个的字符集即可,参考语句: ALTER TABLE tablenameCHANGE COLUMN colname colnameVARCHAR(45) CHARACTER SET ‘utf8’ COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT ‘备注 但是这次的2个表 都已经有其他业务逻辑在使用,贸然调整的话 会引发其他业务的异常,于是用上了sql语句中的字符集转换方法 这样对原始存储不做改变 不影响既有业务: select * from table1 where table1.userid = CONVERT (table2.openid USING utf8) COLLATE utf8_general_ci 最好的当然是在业务规划设计时就明确确定好使用utf8_unicode_ci。

Tags:

cloudflare的免费通用 SSL

2020-09-13 by Jinyang | No Comments | Filed in 技术相关

本站之前用Let’s Encrypt的证书 但是证书要更新、证书在中国大陆存在访问干扰等原因导致想要更换到cloudflare的免费通用 SSL 。 忘记什么时候点击了 【禁用通用 SSL】 ,导致在边缘证书中一直没办法看到证书 ,困惑了好久,今天再次看这个页面的时候 发现页面底部有一个【启用通用SSL】的按钮 点击后 就有了边缘证书了。 边缘证书配合Cloudflare 签名的免费 TLS 证书,再也不用操心证书的事情了,因为边缘证书是自动签发自动更新的,源证书是15年有效期。

Tags:

返回顶部