WDCP 面板默认采用 LNAMP 的结构,即 Nginx 处理静态页面,并转发动态脚本请求(如 PHP)到 Apache 处理。这在没有 PHP-FPM 的时代是个不错的选择,但若是配置不当,存在的问题也很明显,这就是一例。
0x00 背景
最近使用 Yii2 框架开发的过程中,发现在 WDCP 面板的环境下,Yii 自带的 yii\web\Request::getIsSecureConnection
并不能有效判断其是否是 HTTPS 请求。
0x01 猜测
凭直觉判断,是由于请求处理的过程中,HTTPS 证书解析在 Nginx 层面已经处理掉,没有转发给 Apache,并且可能由于 WDCP 面板配置不当导致转发时未携带 HTTP_X_FORWARDED_PROTO
协议头。
0x02 尝试
故查找 WDCP 配置,经过一番搜索,此 Nginx 配置文件位于:/www/wdlinux/nginx/conf/naproxy.conf
。
在此文件内追加一行:
proxy_set_header X-Forwarded-Proto $scheme;
问题解决。
0x03 感慨
如今这时代,能用 PHP-FPM,还是别 N+A 了吧。出力不讨好。
N+A?!?为什么莫名想到……N 卡 A 卡……