阿里云ACK中Nginx ingress使用CLB上的Https证书
背景: 我们在客户那里部署了一套服务, 服务运行在客户提供的 ACK 集群, 我们删除了客户 ACK 自带的 nginx ingress, 通过自建的方式部署了两套 ingress, 一套绑定了公网 四层 CLB, 一套绑定了内网 四层 CLB, 也就是说是 CLB 转发到 ingress, 然后通过 ingress 转发到其他服务. 现在需要配置 Https 证书, 客户不同意我们配置证书到 ingress, 客户将证书放在了 CLB 上, 给了一个证书 ID 查询阿里云文档阿里云的文档还是很详细, 通过 google 查询到文档地址: 通过Annotation配置传统型负载均衡CLB 具体可以查看这里 HTTPS 请求会在 CLB 层解密,然后以 HTTP 请求的形式发送给后端的 Pod。 这个在腾讯云的四层负载均衡里叫 TCP SSL 监听器。 配置 LoadBalancer 类型的 Service因为我们的 CLB 是只给 ingress 使用, 所以修改 ingress 的 Service 配置 yaml: CLB 后端端口配置问题照着上面步骤配置了以后, H...
Django RestFramework 自定义显示字段
有的时候序列化出来的字段并不是我们想要的, 比如说返回的用户 id,而我们想要返回的是用户名, 这个时候可以用到 django rest framework 的自定义字段功能。 先看一下原始数据 这里 user 显示的是 id, 并不是我们想要的 username 增加一个字段, 显示 usernamemodels: serializers: views: 返回结果: 返回用户的多个字段首先需要自定义一个序列化器 这个时候返回结果:
curl常用操作记录
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 参考文章: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html 参数-A-A 参数指定客户端的用户代理标头,即 User-Agent。curl 的默认用户代理字符串是 curl/[version]。 也可以通过 -H(更改 Header) 参数直接指定 User-Agent -b-b 参数用来向服务器发送 Cookie。 -c-c 参数将服务器设置的 Cookie 写入一个文件。 -d-d 参数用于发送 POST 请求的数据体。 -e-e 参数用来设置 HTTP 的标头 Referer,表示请求的来源。 -F 和 -T-F 参数用来上传多个文件-T 参数用于上传单个文件 -H-H 参数添加 HTTP 请求的标头。 -i-i 参数打印出服务器回应的 HTTP 标头...
检查域名支持的HTTPS协议版本
使用 NMAP(推荐)依赖于 nmap, nmap 需要安装 比如 GitHub 只支持 TLS1.2 和 TLS1.3: 在线验证SSL Server Test (Powered by Qualys SSL Labs) 这个域名还可以检测支持的设备情况。 https://myssl.com/ https://www.ssleye.com/ssltool/cipher_suites.html https://www.site24x7.com/zhcn/tools/tls-checker.html 使用 CURL 验证 报错说明不支持当前版本: 使用 OpenSSL 如果握手失败的话,那么就是不支持了。 服务端 TLS 版本配置可以通过配置服务端,比如 nginx 来设置支持的 TLS 版本. Nginx 配置修改配置生成地址: https://ssl-config.mozilla.org/ 注意: tls 版本的配置必须全局生效,如果你有多个 vhost,那么所有都需要修改,建议直接写到一个文件内,然后通过 include 的方式来引用。 常见问题ssl_ciph...
使用openssl对文件进行加密
使用密码加密 使用密码解密
Django RESTframework 自定义Response
比如我想给返回的 json 加上 code/ msg 等信息,可以通过修改 drf 的 response 来实现。 全局生效参考:https://www.cnblogs.com/henryhong/p/djangodrf-zi-ding-yi-shu-ju-fan-hui-ge-shi.html 默认情况 djangorestframwork 可以通过自定义返回模板来重构返回数据的格式,我们查看 restframework 的默认设置可以看到,默认的模板是 rest_framework.renderers.JSONRenderer 和 rest_framework.renderers.BrowsableAPIRenderer,其中第一个是用于前端接收数据时的数据格式模板,第二个是 drf 在 api 查看界面的数据显示模式。 修改模板如果我们想要修改返回给前端的数据格式,那么我们可以首先修改配置参数(settings.py)中的 DEFAULT_RENDERER_CLASSES,将 rest_framework.renderers.JSONRenderer 修改为...
查看Navicat保存的密码
Navicat 密码一旦保存, 再次编辑就没法查看密码是什么了, 包括之前可以使用的星号密码查看器也看不到密码, 我们可以通过导出链接文件, 然后通过解密被加密的密码来获取密码原文. 导出加密密码打开 Navicat – 文件 – 导出连接 接下来的弹窗里, 勾选导出密码, 然后导出成 ncx 文件 用文本编辑器打开 connections.ncx 文件, 复制 password 的值, 这个就是加密后的密码. 使用 PHP 解密电脑没有 PHP 环境, 所以选择使用 Docker 来运行 PHP, 操作如下: 准备解密脚本vim navicat-decode-password.php 使用 Docker 版 PHP 来执行脚本执行 php 脚本,使用 cli 版本的镜像即可. 这里选择 php:8.3.1-cli 密码会打印在控制台上. 优化版脚本 脚本会读取 connections.ncx 文件,并按照格式将内容输出:
Django RestFramework 使用router生成路由
django 使用的是模块化结构,每个 app 都可以独立拆分,那么注册路由的时候也可以灵活一点, 使用 drf 框架提供的 router 来自动生成路由 应用级 urls.py 这里 path 路径是/, 引用了 router, router 注册了两个路由, 分别是 groups 和 students, 生成的 api 路径就是 /groups/ 和 /students 根级路由 urls.py 这里定义了 api/ 引入了 app01 里面的 router 那么最终的 url 结构就是:
bat命令修改windows环境变量
在 bat 下修改环境变量有几种方式, 比如 set setx vmic ENVIRONMENT setwindows 的 set 和 bash 里面直接赋值类似, 只在当前脚本中生效, 比如 vmicwmic 常用命令 举个例子 注册表方式当前用户环境变量 系统环境变量
使用kubectl进行多集群管理
平常使用跳板机来管理, 经常多个环境多套集群, 那么如何用一个 kubectl 如何管理这些集群. 推荐方式这种方式对系统的侵入性比较小,也不用修改 kubeconfig 文件,也不用在 linux 中增加用户等。。 准备不同的 kubeconfig 文件,比如 prod uat 脚本一 这里 export 是必须的,export 的作用是将环境变量传递到子进程中,而 bash 是这个脚本的子进程。 脚本二 执行的时候通过 . a.sh 或 source a.sh 的时候,source 或 . 的作用是将环境变量传递到当前 shell 中。 使用不同的 kubeconfig 管理使用不同的 Linux 用户每个 Linux 用户的 ~/.kube/config 配置不同即可, 比如创建一个 uat 用户,一个 prod 用户, 分别配置不同的 config 文件 使用环境变量设置一个 KUBECONFIG 指定到 kubeconfig 文件 使用参数同使用环境变量 使用一个 kubeconfig我觉得这种方法很繁琐且复杂,并且还会修改 kubeconfig。 准备确保...

