用威联通原生web服务做点什么
威联通的web服务基于apache2,具备基本的ssl、php和reverse proxy功能。个人使用的话,安装nginx或者直接上docker是最省事的,但本着NAS资源能省就省的原则,直接利用原生系统做些简单web应用总是香的。
❗❗开web应用,特别是公网能访问的应用又被hack的风险
❗需要提醒的是,原生apache“优化”了很多功能,需要花时间折腾,并且没有官方文档
⚠️以下内容假设你已经知道如何公网访问以及获取域名的SSL证书
0. 如何debug
使用过程中出现任何问题,查看日志是最有效的排查方式。修改/etc/config/apache/apache.conf文件,将“ErrorLog”字段的值改为“logs/error_log”,最后一行添加“Include /etc/config/apache/extra/apache-custom.conf”,文件内容为:
LogLevel info
注意不要直接在apache.conf或者其它Include文件中改LogLevel的值,会被还原。最后重启web服务:"sudo /etc/init.d/Qthttpd.sh restart"或者"sudo /usr/local/apache/bin/apachectl restart",在"/mnt/ext/opt/apache/logs/error_log/"查看debug内容。
2. 如何自定义反向代理
所有应用以文件夹的形式放在/share/Web下面,只需在访问时在ip后面增加子路径即可。如果想通过域名访问,QNAP系统在后台上提供了反向代理的选项,但遗憾的是只有超时、自定义标头等少数能够自定义,如果要用到类似websocket proxy等高级功能,需要手动修改“/etc/reverseproxy/extra/”里的配置文件。此外,这里的所有手动修改在系统重启之后都会还原,需要想办法放到启动项中。
3. 实用web服务
除了之前介绍的搭建一个wiki站,以下是一些可供参考的
3.1. 短网址(YOURLS)
实际效果正确安装Mariadb10和phpmyadmin,在后台创建yourls用户和对应的数据库(参考NAS 篇七:非Docker方法在威联通上安装Mediawiki)。按照官方文档的说明下载源码到web文件夹,修改config.php文件,如果要允许密码自动转换,还要赋予该文件可写权限。
要注意的是,“YOURLS_DB_HOST”字段要带上sock路径(注:新版Mariadb已经可以开启TCP端口了),就像这样:
define('YOURLS_DB_HOST', 'localhost;unix_socket=/var/run/mariadb10.sock')
我这里把网站放在“/share/Web/xx”文件夹下面,所以“YOURLS_SITE”也要加上子路径。在xx文件夹下面创建.htaccess文件,填入官方文档要求的字段。修改/etc/config/apache/apache.conf文件,就像这样:
修改配置文件重启web服务,进入https://s.mydomain.com/xx/admin/,完成最后的安装步骤。
因为原始域名又带端口,又带子路径,如果你有专用域名也可以做个302跳转。为什么不直接解析呢?一方面考虑到简化流程(无需在NAS新增反代规则),另一方面也不影响使用,二次跳转对终端来说是无感的。
3.2 导航
直接用域名和端口的关键信息做应用标题web服务多了的话,搓个导航页会方便很多。相关方案研究半天,大多需要docker或者复杂的运行环境,唯一一个比较知名的heimdall在手动配置的时候出现500访问错误,至今没有解决,因此转向纯静态实现。比较中意的有asundust/NAS-Nav-iCloud和blqw/nas-home-page。体验过后选择了第一个,原因是界面更美观,并且不是每个应用都能找得到svg图标。配置之前首先精简了一些内容,比如内外网切换(没有比较完美的自动实现方法,还不如手动),jquery以及臃肿的特效。
如果你已经配置好了YOURLS,有个更妙的导航部署方法:直接放在YOURLS的根目录中。因为默认情况下只有admin子文件夹能访问,根文件夹没有index.php之类的入口文件,作者的理由是安全和个性化。这不正好用来放短网址服务。
另外记录一些有用的网站:
发送到微信里复制3.2 测速
实际效果测速功能平时用的也挺多。比如在家看NAS上的视频出现卡顿,检查下网速是不是正常,手机上也可以测家里各个位置到路由器的网速。在外面的话,网盘上传慢,或者打开视频卡,也可以排查网络的问题。这里用了一个mini的php程序,来源见上图,作者安装文档写得也很全面,就不在这里赘述了。
3.3 yt-dlp
问题太多这个就不方便讲的太明白了,可以自己搜下是啥。之前用的docker版的metube,除了更新比较麻烦之外都挺好。这次想找个php直装版,可惜找了很久也没有太中意的。最后试着用了下crohrer/Youtube-dl-WebUI,修修补补之后能搜索了,但是下载功能还是有问题,暂时放弃。
3.4 phpmyadmin
想不到吧,自带的pma也要用到内置web服务。
3.5 docker 自定义
如果实在太折腾,那就还是选docker吧。不过也不一定每个服务开一个container。威联通预置了很多模板容器,新建一个,然后手撸的程序可以一股脑儿放进去,备份、迁移都很方便,还不会干扰NAS自己的系统。我主要用来做一些python或者nodejs向的小应用,平时占用也挺低。
应用程序模板3.5 其他
不过瘾?去github搜awesome-php和awesome-sysadmin上找找看有没有自己需要的。还不够?搜awesome-selfhosted,再次开启新大陆。
以上就是这篇文章的全部内容,感谢观看~
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
AI小值-电脑数码
校验提示文案
AI小值-电脑数码
校验提示文案