解决 caddy http server 没有 try_files 标识符 的坑逼问题 

最近由于想给老的ipad mini 1 安装微信,由于app store 里面的最新版本已经不兼容mini 1 了,便打算自己搭建一个 https://www.diawi.com/ 这样的ipa server.

在github 找到了一个国人开发的nodejs 版本的。前端用一台web server 反代node 后段。本来想用nginx的,毕竟方便。不过因为坑爹的苹果要求站点必须有SSL证书,所以便选择了自带SSL续期的caddy server.不过倒也方便。

都下载,安装,配置,部署后,发现一切ok,就是安装不了。

很是奇怪,于是下载了app 对应的plist文件(https://hh.xzx.im/plist/ce4b37087f3b429d.plist),打开看了一下。

发现由于是反代,里面的url 都是 127.0.0.1/xxx 这样的。。。

编辑 config.js 把publicURL 改成外网caddy 的入口地址.如下:

[root@HongKong ~]# cat ipa-server/config.js
const path = require('path')

module.exports = {
debug: process.env.NODE_ENV !== 'production',
host: "0.0.0.0",//process.env.HOST || '0.0.0.0',
port: "8080",//process.env.PORT || 8080,
publicURL: "https://hh.xzx.im",//"process.env.PUBLIC_URL,
uploadDir: process.env.UPLOAD_DIR || path.resolve(__dirname, 'upload'),
}


重启node,发现还是不能安装...诧异~~~

试着下载了下plist 文件中的ipa 包,提示 404 not found.

这才恍然大悟,原来caddy 的反代没有本地文件(夹)优先的策略,一股脑全部发给node 了。

网上查阅了相关资料,发现很多人都这个需求,也提供了对应的解决方案,修改caddyFile 配置,如下:

[root@HongKong ~]# cat /etc/caddy/Caddyfile
hh.xzx.im
root /root/ipa-server/upload
rewrite {
if {path} is /
to /proxy/{uri}
}
rewrite {
to {path} /proxy/{uri}
}
proxy /proxy 127.0.0.1:8080 {
#except /proxy
without /proxy
#transparent
}


保存配置后,systemctl restart caddy 重启caddy.再次尝试下载,下载对话框弹出来了,ok,完美~

确认一切正常后,ctrl + c 退出 npm start 控制台。

使用 nohup node index.js & 命令已后台方式运行 ipa-server.

本文撰写时参考了以下文章:
https://github.com/iineva/ipa-server
https://github.com/mholt/caddy/issues/695
https://caddy.community/t/unable-to-access-root-path-when-using-systemd/756
https://caddy.community/t/caddy-try-files/3248/5
[ ] ( 1285 次浏览 ) 永久链接 ( 2.8 / 1586 )
终于把网站烦人的丢失登录状态的问题给干掉了 CAO 

这小博客自从套了cloudflare 的cdn 后我就一直觉得很奇怪,每次的登陆状态很不稳定,点一下按钮身份变成游客了,再刷新一下又变回来了。再刷新一下,又tmd 回去了。。。。

所以,每次写好文章后,都是习惯性的ctrl + c 保存一下,免得点击一下提交按钮直接让我重新登录了。千辛万苦码的字直接消失了。。。

至于原因,其实我大概已经猜到了,应该是CF 这边的ip 池的问题,每次随机策略分配过来的ip不固定,就导致了这样的人间惨剧。

今天正好有空就找一下代码块的位置,把它修复了。

如图(完全印证了我的想法):







保存退出,登录一下后台,拼命的狂按F5,嗯,不错,状态没掉。
[ ] ( 1428 次浏览 ) 永久链接 ( 2.8 / 1500 )
pecl 安装 swoole 后编译 swoole_async 提示找不到 php_swoole.h 头文件的坑 

swoole 这个扩展可以说是让php 焕发了第二春,打破了我对php 的一贯“慢”的看法。

有兴趣的朋友可以去swoole.com 看看文档,这里不赘述。

swoole 安装最原始的方法就是下载源码编译安装,和其他的php 扩展一样。不过,我现在越来越懒,比较喜欢通过 PEAR 安装扩展。 e.g. pecl install swoole

不过,从swoole 4.3.0 版本开始,开发团队对swoole 进行了切割,把异步组件的模块单独放入了一个项目 swoole_async.

毕竟我也知道,同步写法+协程 才是swoole 的核心。异步的模块用的人不多,毕竟不是每个人都习惯 nodejs 的 callback hell 写法的……

那么如果你在以后的版本上要使用到异步的组件的话,就得自己在格外安装一下 swoole_async module.

很遗憾的是,至少到目前为止,开发团队还没有把它提交到 PEAR 仓库,也就是说你只能下载源码,自己编译安装了。

这本来没啥,我就下载了,但是问题出现了,make 的时候提示找不到 "php_swoole.h" 头文件。

我仔细查看了相关目录,/usr/include/php/ext/swoole ,确实没有这个文件。

后来我才发现原因,因为我的swoole 是 通过 PEAR 安装和升级的。难道pecl 没有帮我自动安装相关的头文件?

我手动下载了swoole 的源码包,编译安装了一下,果然在我 make install 的时候已经告诉我 头相关的文件已经被写入了系统指定目录下面。

ldconfig -v,刷新LIB库.

再去 swoole_async 目录下尝试 make,果然这个错误消失了……

成功了编译出了 swoole_async.so 链接库。

我日,这就坑了,本来想省事,直接 PEAR 装,现在为了异步模块还得走回头路。PEAR 是tmd 真的坑!!!!
[ ] ( 1065 次浏览 ) 永久链接 ( 2.7 / 1459 )
关闭站点评论功能 (防垃圾机器人评论) 

我这个小博客一直有垃圾评论我是知道的,只不过这两天越来越多。几百上千条。。。。

验证码功能可能是废的。

以前不去弄它是因为反正我也不看,我一般就是记录完一个事情就直接关了,也没感觉到垃圾评论有多烦人。

今天顺手弄了下Google Webmaster,接到了一个关于站点被注入的警告。如图:


才开始重视起来。

问题来了:
我这个小博客数据持久华没有使用任何关系型数据库....是存储在纯文本里面的。因此我不可能简简单单的用几条sql 就 delete 掉那些垃圾数据。

而且坑爹的是,这个小博客的后台还没有提供评论管理这样的一个聚合模块,我的一个一个的文章点进去,一个一个评论删除。没有全选之类的。

研究了一下网站文件目录,发现它的每条评论都是以“commentYY-MMDD-xxxx.txt” 这样的格式存放的。

我看了一下,大部分的垃圾评论都是17,18,19年这几年产生的,所以我就一刀切的把这段时间的评论文件都给删除了,无论内容好坏。


[root@forever-free linux_xiazhengxin_name]# find . -name "comment19*.txt"
./content/12/04/entry120406-221549/comments/comment190123-064343.txt
./content/12/04/entry120416-191734/comments/comment190118-175419.txt
./content/12/04/entry120416-191734/comments/comment190118-204718.txt
./content/12/04/entry120416-191734/comments/comment190119-132050.txt
./content/12/04/entry120416-191734/comments/comment190119-195101.txt
./content/12/04/entry120416-191734/comments/comment190119-233843.txt
./content/12/04/entry120416-191734/comments/comment190120-032256.txt
./content/12/04/entry120416-191734/comments/comment190120-035428.txt
./content/12/04/entry120416-191734/comments/comment190120-234336.txt
./content/12/04/entry120416-191734/comments/comment190121-113012.txt
.........
./content/09/07/entry090724-203404/comments/comment190131-050547.txt
./content/09/07/entry090724-203404/comments/comment190131-084334.txt
./content/09/09/entry090905-014037/comments/comment190123-064519.txt
./content/09/09/entry090905-014037/comments/comment190123-064647.txt
[root@forever-free linux_xiazhengxin_name]# find . -name "comment19*.txt" -exec rm -f {} \;


删完之后,感觉世界都清净了。

此外,考虑到这个提交评论的验证码应该是个摆设,而我也没心思去换一个验证机制,再加上博客也没啥人气,就干脆把评论功能关了。省事!!!
[ ] ( 1355 次浏览 ) 永久链接 ( 3 / 1611 )
给512MB RAM GCP 美区实例添加交换空间 

最近博客经常提示 db error,mariadb 总是莫名其妙的shutdown.查看error.log 发现是 out of memory.

说实话这512MB的VPS我实在不知道该怎么优化,只好寄希望于加个swap space 来顶一顶。好在机器的硬盘还算大。打算分配个1GB出来。

首先在本地创建一个1GB大小的swapfile.

dd if=/dev/zero of=/swapfile bs=1G count=1

别用下面这个命令,会出错。因为它是快速划分空间,并不会即时占用原始大小的空间。

fallocate -l 1G /swapfile //会出错

接下来:

chmod 600 /swapfile //更改权限为 600.

mkswap /swapfile //创建交换格式文件

swapon /swapfile //启用交换文件

接下来可以用过 free -h 或者 htop 或者 swapon -s 看到 swap 已经生效了。

如果你嫌每次都要手动挂载swap 麻烦,可以把配置写入fstab,让其开机自动挂载。
编辑 /etc/fstab 文件,载入一行

/swapfile swap swap rw 0 0


保存即可。重启下可以看到已经生效了。

注:我的系统是CentOS 7.

本文撰写时候参考了以下文章:
https://aws.amazon.com/cn/premiumsupport/knowledge-center/ec2-memory-swap-file/
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7
[ ] ( 1048 次浏览 ) 永久链接 ( 3 / 1379 )

<< <上一页 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 下一页> >>