Caddy平替Nginx,简单入门
Foreword Nginx的配置比较复杂,每次都查半天,也不能自动申请https证书,稍微有点不方便,于是使用Caddy平替了Nginx,把图床、blog、ttrss都直接升级到了https了,这样以后省的我的分站是https,而主站还留在http,有些人拉取rss是从分站拉的,会直接报错。 Caddy Caddy大部分配置可以从官方直接看到,就是官方的例子给的比较少,需要每次试一下 https://caddyserver.com/docs/caddyfile v2ray代理域名 { # 反代我的github的分站 reverse_proxy github.elmagnifico.tech { header_up Host {upstream_hostp..
更多二手 MicroServer Gen8 折腾记 (2/n) - 配置 RouterOS 软路由
我之前宽带一直都是光猫拨号,电脑和 NAS 直连光猫,光猫下挂个二级无线路由器来给其他设备联网,但我早就对这个拓扑不爽了,主要原因是自己花大钱买的 AC86U 派不上用场,只能干点边缘的杂活,而且搞两套局域网怎么看都挺恶心的。之前也试过把路由器改成 AP 模式,让所有设备都直连光猫,但是万恶的电信光猫限制了设备数,只有前 5 台机器能上网,其它的机器虽然能拿到地址,但是上网必定超时。那现在既然有了台服务器,那干脆装个软路由。 软路由系统我打算玩玩 RouterOS,毕竟 iKuai 听说过没用过,据说还出过劫持流量这种问题,不敢用也不想用;OpenWRT 以前玩过,没啥新鲜感,而 RouterOS,之前装着玩的时候就觉得倍有逼格,早就想搞搞它玩玩了。 本篇为二手 MicroServer Gen8 折腾记的..
更多二手 MicroServer Gen8 折腾记 (1/n) - 初始化服务器
上个月冲动消费,入手了一台 HPE ProLiant MicroServer Gen8。其实我早想搞一台正经的服务器来玩了,因为群晖的魔改 Linux 总是玩的不那么爽。现在心愿实现,开始折腾。 本篇为二手 MicroServer Gen8 折腾记的第一篇,记录拿到服务器之后做的一些初始化的工作。 重置 iLO到手之后,我发现我把事想简单了,服务器一般只给一个 VGA 口,而这台也不例外,然而,我这里没有一个能接 VGA 口的设备。是的,你没看错。不止显示器没有 VGA 口,连电视也没有。遂果断下单了一个 VGA 到 HDMI 转接器。第二天收到快递,兴冲冲的接上,却发现只能显示 POST 画面,之后无论是正常继续启动,还是进 RBSU(ROM based setup utility),电视上都是无信..
更多使用 Docker 配置 Redis 哨兵
接上文使用 Docker 配置 Redis 主从复制完成之后,这篇文章主要介绍如何使用 Docker 在本机搭建 Redis 的哨兵,内容包括涉及的目录结构、docker-compose.yml 的编写。 目录结构本文将采用如下的目录结构,其中 data 目录将用于存放各个容器的数据,server 目录存放 docker-compose.yml 以及针对 master 和 slave 节点的配置文件,sentinel 目录存放哨兵的配置文件和 docker-compose.yml。 123456789101112131415.├── data│ ├── redis-master│ │ └── dump.rdb│ ├── redis-slave-1│ │ └── dump.rdb│ └── redis-..
更多使用 Docker 配置 Redis 主从复制
这篇文章主要介绍如何使用 Docker 在本机搭建一个带有主从复制功能的 Redis 环境,内容包括涉及的目录结构、docker-compose.yml 的编写,以及结果的验证。 目录结构本文将采用如下的目录结构,其中 data 目录将用于存放各个容器的数据,server 目录存放 docker-compose.yml 以及针对 master 和 slave 节点的配置文件。 1234567.├── data└── server ├── docker-compose.yml ├── redis-master.conf ├── redis-slave1.conf └── redis-slave2.conf 配置 Redis 节点配置 master 节点编辑 redis-mast..
更多自建 Tailscale 的 DERP 节点
迫于 Tailscale 官方的中继节点在国内几乎没法用,于是在轻量云香港区自建了一个 DERP 服务。 安装 derper因为 derper 是依赖 go install 实现分发,所以要先安装 Go 语言 SDK。 12$ wget https://go.dev/dl/go1.20.linux-amd64.tar.gz$ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz 安装成功后,需要配置环境变量,把 Go 的可执行文件,和 ~/go/bin 目录加入 PATH。在.bashrc(如果你用 zsh,那就是.zshrc)中添加如下命令: 1export PATH=$..
更多记一次修复生产环境中 nginx 出现的 SNI 相关的问题
前段时间,我司出现了一次生产事故,调查后发现是当时的 OpenResty 配置不兼容 SNI 导致的。在这里我也记录一下整件事的排查过程,以及解决方法,供遇到类似问题的同志们参考。 事故症状某天开始,我司的 OpenResty 日志中大量出现 SSL 握手失败的错误,并影响了正常的业务。查看 OpenResty 日志,看到有大量这样子的报错: 1232021/10/19 20:51:30 [warn] 16776#16776: *1110324 upstream server temporarily disabled while SSL handshaking to upstream, client: [MASKED], server: localhost, request: "GET /endpoi..
更多微信小程序 scroll-view 填满剩余可用高度
根据微信小程序 scroll-view 文档所述,scroll-view 必须给定一个固定高度。那么如果我们想要让它自动填充剩余高度,该怎么办呢? 前言在说出我的解决方案之前,先来看一下我的页面设计,以便于理解。 如图所示,我将这个页面分成了三部分:最顶部的导航栏 navbar,用于显示概要信息的 header,以及本文的主角 scroll-view。可见,scroll-view 位于页面的最下方,如果我直接给它设定一个固定的高度,那么在不同尺寸的屏幕上,就可能会有高度过小而在下方留白,或者高度过大超出屏幕下边界的可能。那么,自动计算 scroll-view 的高度,看起来是一个可行的办法。 思路有了,接下来就开始挑趁手的工具吧! 需要的 API首先,在计算过程中,整个页面的高度是必须要有的。而小程..
更多在群晖的 Docker 环境中运行甜糖星愿服务
前段时间在网上看到了一个叫 “甜糖星愿计划” 的东西,声称可以通过贡献闲置带宽来获得积分。正好我有个 NAS,正好我的宽带一天从白天闲到黑夜,不如利用起来,少少挣一些零花钱。 需要注意的一点是,本文提到的镜像仅在我的群晖DS218+ 上测试过,虽然镜像中未使用任何群晖限定的依赖,理论上适用于任何 x86 架构的平台,但并不保证运行效果。而且本文目标平台是 x86,如果你拥有 ARM 平台的机器,那根本不需要废这个劲,你可以直接运行甜糖星愿的可执行程序。 本文提到的操作全部基于 Docker,故在按照本文操作前,请先确保你已经拥有足够的知识来使用 Docker 和 docker-compose。 我的网络环境因为这个镜像相关的一些配置是以我的网络结构为基础的,所以我觉得有必要简单说一下我的网络结构是什么..
更多记一次抢救被 force push 的 GitHub 仓库
就在刚刚,我一个误操作,在没有本地备份的前提下,force push 了一个 GitHub 上的仓库。万幸最后恢复成功,数据拿回来了。惊魂未定之余,在此记录我的抢救过程以供参考。 前景提要在闲逛 GitHub 的时候,发现了一个叫 snk的项目,可以在我的 profile readme 里面放个贪吃蛇,遂照着它的 example with cron job抄了一个 workflow 过来。但是这里我自作聪明地想着把东西全放在 master 上,就把 38 行的 target_branch 改成了 master。结果一运行吓一跳,我的 README.md 没了,仓库只剩下 snk 生成的 svg 文件。这不行啊,我花了好久的时间才整出来的东西,不能说没就没啊!于是赶紧开始网上冲浪,看怎么抢救被 forc..
更多