标签/Tag为[PSGI]的文章

[笔记]CentOS6 nginx下安装MT-PSGI环境的全过程

PSGI 运行 MovableType,是一直的梦想,说实在的,慢如蜗牛的 MT 后台已经早已厌倦了。只是不舍得转化到 WordPress 平台而已。

切换到了 vultr VPS + nginx, 这个愿望可以说距离实现近了一步,只是小有瓶颈,因为原版的 mt-starman-daemon 是针对 Debian 的。 移植到 CentOS6 上需要小小改动。

废话不说,直接记录过程吧。

先上几个参考教程:

  1. https://github.com/saahov/mt-starman-daemon
  2. http://www.centoscn.com/CentOS/help/2016/1209/8270.html
  3. https://www.tonyhead.com/archive/2014/08111250

PSGI 环境下的MT留言IP问题,其实很简单 ,

切换 MT 运行环境为nginx + PSGI,后台速度的确刷一下上去了。 但是,由于是所有的 cgi/pl 文件其实都交给了服务器的 mt-starman-daemon 本地网关守护进程, 所以所有的程序的来访IP都会变成 127.0.0.1 。 检查一下后台日志,的确如此,其他都不重要,但是留言/评论 的IP地址就不能不说遗憾。

检查配置 mt-starman-daemon 时的增加的 nginx 设置,如下:

codelocation /cgi-bin/mt/ {
proxy_set_headerHost $http_host;
proxy_set_headerX-Forwarded-Host $host;
proxy_set_headerX-Real-IP $remote_addr;
proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://starman;
}

配置中明确有原始访问的IP。。 那么还是看 MT 的程序。 根据直觉,直接查看 MT/App.pm, 搜索关键词 $ENV{REMOTE_ADDR},结果定位到如下:

codemy $trusted = $app->config->TransparentProxyIPs || 0;
my $remote_ip = (
$ENV{MOD_PERL}
? $app->{apache}->connection->remote_ip
: $ENV{REMOTE_ADDR}
);
$remote_ip ||= '127.0.0.1';
my $ip
= $trusted
? $app->get_header('X-Forwarded-For')
: $remote_ip;

呃, MT 本身就有这个功能。。。。。也就是 TransparentProxyIPs 。 这下简单了。 打开 mt-config.cgi, 增加以下设置:

TransparentProxyIPs 1

保存。 重启动 mt-starman-daemon。

再次发一条评论,测试可以正常获取原始IP地址。

弯路一堆。 幸好OK。

MovableType.org 一搜索。有详细解释,地址如下: https://movabletype.org/documentation/appendices/config-directives/transparentproxyips.html

-bbb。

Anyway,解决就好。

--EOF--

博客复活与调整 ,

网站带病运行一年,博客也中断更新一年。貌似今天又继续开写了。中断的原因基本上是因为懒、切换服务器加上一些额外的状况。

简单说说:

  1. 切换服务器:去年 3 月份的时候,主机就到期了。当时因为看大家的VPS都不错。就准备也试试。于是在2016年3月切换到了 vultr 。当时选择的东京机房的LEMP 方案,CentOS6x64系统,25GB SSD,1 CPU 1024MB Memory, 1000GB Bandwidth,每月5美元。 由于从 apache 切换到 nginx 。很多设置无法平滑过渡。故而简单给nginx添加Perl-CGI 的支持(Fast-CGI 模式)后就先运行了。切换完成后,导致无扩展名的Perl文件无法运行,跨域验证无设置导致主页分页无法正常运行,apache 和 nginx 的 rewrite 规则不兼容导致 tag 目录完全失效等等。
  2. 懒: 切换服务器后,想法很大: 准备研究以 PSGI 运行 MovableType,彻底解决 MovableType 瓶颈,但是发现在 CentOS nginx 上安装 mt-starman-daemon 有一定的技术瓶颈。而 nginx 对 pathinfo 的 不支持 也让以前写的后台脚本不能直接使用,nginx 的rewrite 规则居然需要重启 nginx 才能实现,没有面板的VPS,实在的懒得SSH 下敲命令,故而就拖了下来。。。。 总之,明日复明日。。 而系统的马马虎虎运行也自然没有写东西的欲望。。
  3. 琐事甚多:这一年,遭遇家人住院,工作变动等诸多因素,然后在博客投入的精力自然就不会太多。。。

回归正传,最近抽出了一点时间,做了一些调整之后,博客的所有的功能都已经修复,也成功的实现了 nginx + PSGI 运行 MovableType,重新享受数年前的飞一般的后台速度。。。 一段时间没有上vultr 控制主页,发现vultr 居然推出了2.5美元的产品? 不过仅仅是空白VPS,啥都需要自己装。。。也许接下折腾就是从 $5/mon 折腾到 $2.5/mo。

PS: 虽然是带病运行,但是 vultr VPS 也算满一年了,话说其性价比和稳定性都算比较好的。有需要VPS的还是可以考虑一下。 vultr VPS 对新用户很优惠,新用户注册完成后支付充值5美元后送20美元,可惜我 2016年3元就注册了。无法享受赠送。

接下来,有时间整理的话,我会把 在 CentOS6 系统的 nginx + PSGI 运行 MovableType 的过程分享给大家 :)

--EOF--