一直以来,我都使用 ipfilter 插件为本站的关键页面设置 IP 白名单.不过,前段时间在使用 Cloudflare 的时候,却偶然发现了 ipfilter 存在的一个问题. Continue reading
Caddy
我是如何隐藏服务器 IP 地址的?
前些天看到这篇帖子,其中提到的保护网站安全的措施中着重提到了 IP 地址应该避免泄露.考虑到近期以来本站常常遭到(疑似的)攻击,是时候好好地研究一下这个问题了. Continue reading
反向代理 Telegram, 解决在国内的连接问题
很长一段时间以来,网页版 Telegram 在国内都遭到了异常严重的封锁.时至今日,已经到了挂上梯子仍不能连接的地步.因此,搭建一个 Telegram 反向代理网页客户端就显得十分必要了. Continue reading
博客搬家记
在本站两岁生日即将来临之际,我终于下定决心,把整个网站搬迁至新的 VPS 上.过程刺激而有趣,不妨写写. Continue reading
解决从 Caddy 服务器下载文件时出现的网络错误
前几天捣鼓了一个私人网盘出来,使用过程中发现下载文件时经常失败,具体表现是刚刚开始下载时一切正常,几秒钟后突然停止,告诉我网络错误.经过一番研究后,我发现这是服务器超时时间设定的问题.解决办法很简单,在 Caddyfile
中加入:
timeouts none
重启服务器即可.
需要注意的是,不同于 Caddy 的其它配置项, timeouts
是强制应用于全局的.也就是说,假如你的 Caddyfile
类似于这个样子:
a.test.com { timeouts none #other directives } b.test.com { #other directives }
那么 a.test.com 和 b.test.com 的超时都会被设定为 none
. 就这个问题,我询问了 Caddy 作者 Matt 大神,得到的答复是,受到 Go 语言标准库的限制, 我们是没有办法为多个站点设置不同的超时的.不过这个问题在未来可能会被修复.
参考:
Caddy 官方文档
https://caddyserver.com/docs/timeouts
我在 Caddy 社区的提问
https://forum.caddyserver.com/t/network-error-when-download-file-form-server/1382
以上.
使用 Caddy+AriaNg 搭建私人网盘
更新:
本文已过时.请阅读用"更现代的"方法,建立基于 aria2c 的下载服务器.
本来是挺简单个事, ownCloud 装上去随便配置两下就搞定的,没想到花了我这么多时间.还是写篇文章记录一下吧. Continue reading
在 GNU screen 中优雅地运行 Caddy
容我先吐槽两句, Caddy 的守护运行真的是把我折腾惨了,高端的 init 工具如 systemd 之流没一个是靠谱的,浪费时间浪费生命,最后还是用 screen 解决了问题.你们说 screen 很 low, 我 tm 才不管, it just works.
但毕竟 screen 是很简陋的.那么本文就来说说怎么让 screen 也拥有退出自动重启和开机自启的功能. Continue reading
无法将 Caddy 作为 systemd 服务启动的一种解决方法
Update:
请阅读在 GNU screen 中优雅地运行 Caddy.
Update:
好了这篇破文章不用看了, systemd/SysVinit/Supervisor 我全都试了一遍,全他妈都不行,握草他妈的守护进程这个问题真的是无力再战了,在这上面不知道浪费了多少时间.目前用 screen 守护 Caddy, 一切正常, mlgb.
Caddy + PHP-FPM 服务器报 getsockopt: connection refused 错误的解决方法
环境: Fedora 25, Caddy 0.9.4, PHP 7.0.14.
Caddy 处理 PHP 页面的方式类似于 Nginx, 也是交给 PHP-FPM 处理.在 Caddyfile
中只需这样写:
fastcgi / 127.0.0.1:9000 php
然而无法访问 PHP 页面.检查日志后发现这样一条报错信息:
[ERROR 502 /index.php] dial tcp 127.0.0.1:9000: getsockopt: connection refused
其原因是 PHP-FPM 默认监听 /run/php-fpm/www.sock
, 而非9000
端口.在 /etc/php-fpm.d/www.conf
配置文件中如此修改:
;listen = /run/php-fpm/www.sock listen = 9000
然后重启 PHP-FPM 服务即可.
以上.