9月
12
分析 app 接口数据,对 app 请求进行抓包是必要的一步。比如想做一个自动抢票系统,在对方没有提供 api 给予抢票时,就得需要自己去抓包分析请求。虽然这样不一定能成功,却是要走的一步。charles 是一个很不错的抓包工具,是一个付费工具。利用 charles 进行抓包需要走一下几步。
抓包步骤
- 下载安装 charles。 https://www.charlesproxy.com/latest-release/download.do
- 获取激活码。 https://www.zzzmode.com/mytools/charles/
- 通过上边的激活码,激活 charles。
- 配置(mac 端证书,手机端证书,代理接口等)。 https://blog.csdn.net/pan_jiabao/article/details/123126053
乱码配置
上边这些做好之后,手机端运行程序发起的 https 请求, mac 端的 charles 都能抓取到。可是在查看数据时,发现都是乱码。不是乱码更好了。如果是乱码,就处理处理。
-
依次点击顶部菜单。 Proxy->SSL Proxying Settings.
-
Enable SSL Proxying 打勾,并且添加 include 配置。这里可以添加 :。允许所有的域名和端口号。这样设置之后,乱码应该就没了。至少我是没了。
5月
29
fontawesome 字体。如果主题中直接引用 cdn 的字体,经常出现 404 等情况。可以将字体下载下来,放在主题目录下,使用本地的会更好。
https://fontawesome.dashgame.com/#google_vignette
获取当前主题的 url。比如存在某个主题 A,在主题 A 下有 ·/css/your-stylesheet.css 文件,就可以通过下边的方法来处理。这样渲染出来就是 https://xxx.com/xx/xx/css/your-stylesheet.css。 如果你的域名是 https://xxx.com 的话。这样就可以防止硬编码了。
<link rel="stylesheet" type="text/css" href="<?php echo get_template_directory_uri(); ?>/css/your-stylesheet.css">
自言自语
在 wordpress 中,我安装了一个主题,在这个主题的 header.php 中,我引用了该文件夹下的一个 css 文件,怎么获取当前的 css 文件的路径呢
5月
26
brotli 有很好的解压缩效率,但 nginx 默认又不包含 brotli 模块,只能额外搞了
步骤
- 准备 Dockerfile 文件
- 准备 nginx.conf 文件
- 准备 docker-compose.yaml 文件
- 生成镜像,构建容器
准备 dockerfile
先
# 创建一个 env 目录,基于该目录为项目根目录
mkdir env && cd env
# 下载 Dockerfile
curl -o docker/nginx/Dockerfile https://raw.githubusercontent.com/nginxinc/docker-nginx/master/modules/Dockerfile
准备 nginx.conf
https://github.com/google/ngx_brotli/blob/master/README.md
这里 nginx.conf 位于 ./conf/nginx/nginx.conf 中。
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
brotli on;
include /etc/nginx/conf.d/*.conf;
}
准备 docker-compose.yaml 文件
docker-compose.yaml 文件直接就在项目根目录下。
…
nginx:
build:
context: ./docker/nginx
args:
ENABLED_MODULES: brotli
image: xr-nginx-brotli
container_name: xr-nginx-brotli
restart: always
privileged: false
ports:
- 80:80
- 443:443
volumes:
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
生成镜像,构建容器
# 生成镜像
docker-compose build nginx
# 构建启动容器
docker-compose up
其实,可以直接执行 docker-compose up
, 没有镜像的时候,会先去生成镜像的
检查
当你发起请求经过 nginx 时,返回的请求头中有 Accept-Encoding: br
表示 brotli 生效了。
相关文章
https://github.com/nginxinc/docker-nginx/tree/master/modules
https://github.com/google/brotli/
https://github.com/google/ngx_brotli
https://github.com/nginxinc/docker-nginx/issues/332
5月
13
在 git 版本工具中,同一个公钥只允许配置一个。假如你有多个电脑,多个账号,多个项目需要进行代码上传下载。这个时候就处理不好。
有这样一个场景:
在 A 电脑,有一个 a 项目,上传到 a 账号的 github 上。
继续,在 A 电脑,有一个 b 项目,上传到 b 账号的 github 上。
如果想使用 ssh-key 的授权方式来上传代码。同一个 ssh-key 只能配置在一个账号里。也就是对于同一个 git 平台,同一个 ssh-key 只能有一份。于是,你就只能再去创建一个新的 ssh-key,然后配置另外一个账号里。
这样的确是可以配置进去了。但是,当你上传代码的时候,会提示授权不过。因为,git 没指定 ssk-key 的时候,会使用默认的公私钥,就是 id_rsa
。这个时候,就需要在特定项目,指定也定的 ssh-key 就实现了。
生成 ssh-key
ssh-keygen -t rsa -C xxx@xx.com -f xxx-github
指定 ssh-key
方式一(到当前目录下):
git config core.sshCommand "ssh -i ~/.ssh/xxx-github"
方式二
# 添加
ssh-add ~/.ssh/xxx-github
# 删除
ssh-add -d ~/.ssh/xxx-github
# 查看
ssh-add -l
推荐使用方式一,这样每个项目都会对应好自己的 ssh-key,不会影响其他的项目。
历史
https://blog.vini123.com/1070
https://blog.vini123.com/1134
4月
30
在 docker
容器中运行 python 项目时,报 RuntimeError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx 错误,这个时候需要 docker 开启 nvidia engin 的支持。至少电脑是装了 nvidia 的显卡的。
docker 中启用 nvidia:
https://blog.vini123.com/1206
4月
30
在 docker 中,docker-compose.yaml
配置了 nvida 参数时,执行 docker-compose up -d
时报docker: Error response from daemon: unknown or invalid runtime name: nvidia 错误。
如果是非 win 系统,修改 /etc/docker/daemon.json
,并添加以下配置。
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
然后重启 docker。
如果是 win 系统,需要手动打开 docker 桌面应用,点击右上角的设置,进入 docker engine 项进行配置。配置内容也是和上边的一样。如下截图。
1月
22
不科学上网的操作
依次访问:
找到 DNS Resource Records 下的 ip 地址。依次加入到 hosts 中。
# mac 的
sudo vim /etc/hosts
140.82.113.4 github.com
151.101.1.194 github.global.ssl.fastly.net
这样再提交代码,估计就可以了。至少我试过是可以了的。
不行,刷新 DNS 缓存试试。
sudo killall -HUP mDNSResponder
参考
https://juejin.cn/post/7324866317206585394
1月
12
对于 github 这类服务,一个 ssh-key 只允许添加一次。也就是你在 a 账号添加了 ssh-key,再想用这个 ssh-key 添加到 b 账号是不行的。这个时候,就需要在该 ssh-key 的电脑上生成新的 ssh-key 来满足多账号的需求。
那么问题也来了,这就需要每次都要指定 git 项目对应的 ssh-key。方法自然是有的。方法有好几个,只用最方便的吧。
生成 ssh-key
https://blog.vini123.com/1070
指定 ssh-key
假如按照上边的操作,生成了 ssh-key,也将其公钥添加到配置中了。那么只需要指定当前所使用的 ssh-key 就可以了。
# 添加
ssh-add ~/.ssh/ssh-key-私钥
# 查看
ssh-add -l
# 删除
ssh-add -d ~/.ssh/ssh-key-私钥
这样就可以使用 git 来操作代码了。 clone push pull 都是可以的。
不过,这个电脑重启后,就失效了。还是会使用默认的 ssh-key
ssh-add 错误
执行 ssh-add xxx
的时候也许不是顺利的。可能会有下边的报错。
Could not open a connection to your authentication agent.
。
解决:
先看看 ssh 代理是否在运行。 ssh-agent -s
。如果没运行,启动它。如果运行了,看 SSH_AUTH_SOCK 环境变量是否存在。echo $SSH_AUTH_SOCK
如果出现上边那个错误,走到这里了,应该是不存在的,也就是输出为空格。那么重新启动 ssh 代理。再回过去检查。
eval "$(ssh-agent -s)"
12月
13