简介
qnap QTS5.x
中加入了反向代理支持,架构为 Apache
,但界面上不支持一些高级的设置,需要手动来修改配置文件。
修改配置文件
配置文件位于/etc/reverseproxy/extra
中1
,文件名为 n.conf
(n 为一个数字),通过ssh
登入服务器后执行:
cd /etc/reverseproxy/extra
sudo vim n.conf # change n to the interested number
# 例如
ProxyPreserveHost On
使配置文件生效
直接运行: 1
sudo /etc/init.d/reverse_proxy.sh reload
首先确定了是apache,就顺着apache去找配置,发现配置在/etc/config/apache/下
extra 内基本就是自带的一些映射配置
在修改qnap反方向代理时会调用/etc/init.d/reverse_proxy.sh这个脚本
大致流程:
当用户在页面上配置了反向代理规则后,qnap会将用户的规则保存到/etc/config/reverseproxy/reverseproxy.json 中
随后使用/etc/init.d/reverse_proxy.sh 这个脚本来解析json,
这些配置被解析生成为apche 配置,存放于/etc/reverseproxy/extra/下
根据配置会有多个,命名方式为1.conf 2.conf …
然后会调用
/usr/sbin/reverseproxy -k start -f/etc/reverseproxy/reverseproxy.conf 来启动用户自定义规则
/usr/sbin/reverseproxy 是快捷方式,实际指向/usr/local/apache/bin/apache
我们看下reverseproxy.conf最后一行
包含了/etc/reverseproxy/extra/下所有conf文件
至此就将我们的规则运行起来了
经过测试,在页面关闭、启动这个条规则会删除原有规则并重新生成
经过查看sh脚本,发现是在start_proxy 时会删除原有配置,然后根据json解析生成新配置我不想修改脚本,所以只能绕过,
经过查找,发现在reload_proxy这个方法不会触发删除,只会调用
/usr/sbin/reverseproxy -k graceful -f/etc/reverseproxy/reverseproxy.conf
重新加载配置