利用Nginx的rewrite来实现自动跳转
任意链接都跳转到指定页面
需要部署一个服务在Kubernetes内, 需要实现通过ingress可以访问到, 本来是很简单的事情, 但是由于访问来源的location不确定,为了避免报错404,所以用Nginx的rewrite来实现
Nginx配置如下(所有location转发到index.html):
12345678910111213server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { rewrite ^(.*) /index.html break; }}
自动跳转https配置文件如下:
123if ( $scheme = http ) ...
使用Obsidian配合Hexo写博客
obsidian是一款好用的markdown编辑器, 用来记笔记还是不错的。 并且支持插件系统,可以通过模板来生成博客的frontmatter, 省去了hexo new的操作 所以准备配置一下用obsidian来写博客。
相关文章:静态博客生成工具hexo使用typora更好更快地写hugo博客使用vscode来写hugo博客并处理图片插入问题
打开仓库首先使用obsidian打开source/_posts目录, 然后会生成一些配置文件。进入_posts目录
创建.gitignore将一些临时文件排除掉。
1.obsidian/workspace.json
配置模板自带的模板插件功能太单一了, 我们关闭安全模式, 安装第三方插件Templater
创建Templates目录,修改配置指定Template的目录。修改配置项Template folder location为Templates
然后再此目录下创建Front-matter.md文件,此文件用作hexo的frontmatter模板。
123456789---title: <% tp.file.title %>cat ...
ArchLinux安装记录
官方文档 ArchWiki 已经写的很好了,但是每次安装的时候都要踩坑,所以开个文章记录一下。
磁盘分区与格式化123456parted /dev/sdamklabel gptmkpart ESP fat32 1M 513Mset 1 boot onmkfs.fat -F 32 /dev/sda1mkfs.ext4 /dev/sda2
挂载与chroot操作chroot后相当于进入了安装后的系统内进行操作
123456mount /dev/sda2 /mntmount --mkdir /dev/sda1 /mnt/bootpacstrap -K /mnt base linux linux-firmwaregenfstab -U /mnt >> /mnt/etc/fstabarch-chroot /mnt
常用配置配置时区12ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimehwclock --systohc
配置locale1pacman -S vim vi
vim /etc/local ...
Fail2ban配合Docker使用解决暴力破解
fail2ban正常使用可以参考使用Fail2ban抵御暴力破解和cc攻击,但是对于使用了Docker host网络的容器来说是不生效的。原因最后说, 我们先复原一下部署情况
环境现状服务器是我自己的服务器,使用Nginx做入口,反向代理到不同的后端,后端服务和Nginx都是运行在Docker里,使用Docker的自定义网络进行互联。其中Nginx容器使用的是Host网络
配置fail2ban确定Docker版Nginx日志路径Linux内一切皆文件,Docker会将日志写入到主机的一个日志文件中。通过
1docker inspect nginx --format "{{.LogPath}}"
可以查看到容器的日志位置
创建配置文件/etc/fail2ban/jail.d/nginx-cc.conf123456789[nginx-cc]enabled = trueport = http,httpsfilter = nginx-ccaction = %(action_mwl)smaxretry = 50findtime = 1 ...
使用Fail2ban抵御暴力破解和cc攻击
fail2ban 是一款防止暴力破解和cc攻击的开源工具,采用Python编写。
常用组件
工具
作用
fail2ban-client
客户端工具
fail2ban-regex
验证正则匹配
1234567891011# 查看启用的规则fail2ban-client status# 查看规则详情fail2ban-client status sshd# 重新加载配置fail2ban-client reload# 手动解禁IPfail2ban-client set sshd unbanip 192.168.1.1
配置文件目录
作用
/etc/fail2ban/jail.d
ban的规则,如多少次触发,触发后封禁多久等
/etc/fail2ban/filter.d
过滤规则,匹配日志的正则配置
规则测试创建配置文件/etc/fail2ban/jail.d/nginx-cc.conf
123456789[nginx-cc]enabled = trueport = http,httpsfilte ...
Windows下运行服务的几种方式
原生命令sc微软官方文档: https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/sc-create
第三方工具winsw 2.xhttps://github.com/winsw/winsw/releases/tag/v2.11.0
需要将winsw可执行文件和配置文件放在同一目录, 一般放在程序同级目录. 同样以frpc为例:
service.xml
12345678910111213141516171819202122232425262728293031323334353637383940414243<service> <id>frpc</id> <!-- Display name of the service --> <name>frpc Service (powered by WinSW)</name> <!-- Service description --> <des ...
Python遍历文件或文件夹
遍历所有文件夹123456import ospath=r"c:\users\iuxt\desktop\"# 获取到当前目录下的所有子目录的绝对路径for root,dirs,files in os.walk(path): for dir in dirs: print(os.path.join(root, dir))
遍历所有文件123456# 获取到的是此目录下和子目录下所有文件的绝对路径import os path=r"C:\users\iuxt\desktop\"for root,dirs,files in os.walk(path): for file in files: print(os.path.join(root, file))
Python读写文件
使用Python读写文件很方便,有多种方法,但是读写大文件还是需要优化的。
python open文件的模式:
模式
描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以 ...
gpg使用记录
要了解什么是GPG,就要先了解PGP。
1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。
GPG有许多用途,本文主要介绍文件加密。至于邮件的加密,不同的邮件客户端有不同的设置。
当前我的系统环境是Ubuntu 22.04 gpg版本是gpg (GnuPG) 2.2.27。
创建密钥对12345# 快速生成密钥对gpg --gen-key# 交互式创建gpg --full-gen-key
这里我们使用 –full-gen-key 来生成密钥对,首先选择密钥类型,选择 1 (默认) 即可
12345678910111213$ gpg --full-gen-keygpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc.This is free software: you are free to ...
CentOS7更新内核版本
确认当前内核版本1uname -r
安装内核仓库
仓库的官方地址是: http://elrepo.org/tiki/HomePage
12rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
查看可用的内核列表1yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装LTS版内核1yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
查看当前系统可用的内核1awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
...