分类: 运营维护

服务器, 运营维护

cPanel/WHM切换PHP执行方式为APACHE2HANDLER(dso)并为Apache2添加mpm-itk模块

apache2handler

今天安装了cPanel/WHM 11.38.2(下文简称cp),用了后,我只能说,cPanel管理员后台的功能真的不是一般的强大,简直是把DirectAdmin甩到十万九千七亿千米去了。 但世上没有十全十美的东西,不出我的预料,cPanel使用的是suPHP,PHP执行方式是FastCGI。 前面文章我曾经提到过suPHP的缺点,这里就不再重复。 既然APACHE2HANDLER(下文简称A2R)模式的安全性,性能等多方面都比FastCGI好,怎能不对cPanel进行改造改造呢? 首先,要切换PHP的执行方式。以root身份登录cPanel的后台,在“Service Configuration […]

Read more 4 Comments
服务器, 运营维护

多重代理时如何防止伪造X-Forwarded-For且获取真实IP

127.0.0.1

当我们给网站使用例如CDN,Nginx或Varnish等缓存服务时,为了获取访客的真实IP,大多数会地把访客的真实IP赋值给X-Forwarded-For(下文简称XFF)。 但是因为XFF是个HTTP请求头,也就是最前面带有http_,因此这类http信息就可以被伪造。     其实根据实际使用情况判断是否需要获取XFF内容就不会出现这些问题。 拿Nginx的反代理(Proxy模块)功能来说,有人会把$proxy_add_x_forwarded_for变量的内容传给后端作为用户的真实IP。 Nginx对该变量的处理非常智能,当有XFF传过来时,Nginx就会自动把Ngin […]

Read more 22 Comments
服务器, 运营维护

禁止Nginx重定向至监听端口

Prot in redirect

在使用Nginx时,可能有时不需要让Nginx监听80端口,甚至在前面再加一个Squid,Varnish之类的HTTP缓存。 但是访问子目录时,除非在子目录后面再加一条“/”,否则就会遇到网址自动重定向至Nginx监听的端口。假设你Nginx站点监听的端口是123,你本来访问的地址是http://domain.com/wp-admin,会自动重定向至http://domain.com:123/wp-admin 这样明显会对服务器造成很大的威胁,要知道后端可是很重要的,如果后端端口暴露出来,就可能会被人直接对这个端口进行诸如CC之类的攻击…… 在Nginx的核心模块的文档中,有这样一个配置: [ […]

Read more 5 Comments
服务器, 未分类, 运营维护

解决添加Zend Guard Loader后探针检测仍然显示小红叉

可能有些人会用到SHOPNC这类用Zend加密的程序,因此需要添加Zend Guard Loader,不过安装好后用探针检测,可能会出现以下情况——Zend Guard Loader旁边显示小红叉。例如安装DirectAdmin时选择PHP5.3并且选择添加Zend时,就会出现这种情况: 我们来看看Zend的官方说明文档:

明文说明需要添加zend_loader.enable=1,执行此命令可以检查php.ini有没有这一行代码(仅仅适合PHP-CLI/CGI,FPM的用find命令找出来后手动检查): [crayon-6038 […]

Read more 4 Comments
服务器, 未分类, 运营维护

LNMPV0.3 Stable For Ubuntu 12.*/Debian 6/Debian7/CentOS6 32Bit or 64Bit

从今天开始,LNMPV的网站正式启用,以后新版均在http://www.mke2fs.com发布   LNMPV 0.2 Stable: 昨天发布了LNMPV 0.1测试版,感谢http://imlonghao.com/这个勇敢的小白,试用了我的LNMPV0.1,告知了我很多BUG,经过昨晚的努力,终于解决了。 另外还要感谢单手摘JJ,经过他昨晚的提醒,让我恍然大悟,发现可以一站一POOL来实现PHP以特定的用户身份执行。从而解决跨站问题。 本次更新: 1 )使用sock方式链接PHP-FPM 2 )添加可选的一站点一POOL的功能 3 )修改PHP-FPM的进程上限 4 )修改PH […]

Read more 72 Comments
未分类, 运营维护

揭穿babytomas之”WHMCS从国外服务器获取域名IP”的谎言

License information

几天前在Hostloc发了一贴:香港WHMCS演示站。 一个名叫babytomas的小家伙说我是安装到使用DNSPOD的分线解析,从而使居于美国的WHMCS的服务器检测我的域名的IP是Hostgator的IP。 我当场反驳了他的观点,但是他并没有认识到自己的错误,仍然满怀信心地把自己的方法贴出来:     我实在是不忍心看到一个青少年继续错误下去,那么今天我就来个测试,让大家看看谁是谁非! 首先,我到DNSPOD处做好分线解析(cnwhmcs.yzs.me):   并且到Chinaz Ping了一下,以确认DNS记录已生效:   到http://www. […]

Read more 20 Comments
未分类, 运营维护

解决使用iptables转发FTP端口后提示无法读取目录列表(MLSD)

几天前把拉斯维加斯服务器的数据转移到了香港的服务器,想到有些人可能没那么快知道,就使用iptables进行端口转发,实现FTP连接到拉斯维加斯服务器的IP,最后是到达香港的FTP服务器。 这实现不难,首先修改配置,实现开机就打开内核转发:

把默认的:

改成:

如图:   然后执行:

打开内核转发功能。 使用下面两条命令添加转 […]

Read more 1 Comment
未分类, 运营维护

APC3.1.9自动安装脚本For DirectAdmin with PHP-CLI

前面发过一个APC Shell Script For PHP-CGI,经过Zeraba的指导,使用apc.php看了下APC的命中率,发现无论怎样,命中数只有“1”,明显APC并没有发挥它应有的用途。同时也发现,不管是什么opcode的PHP组件,都是只能在探针那看个版本…… 既然PHP-CGI有问题,那就换PHP-CLI,但是DirectAdmin的PHP-CLI模式也有问题,那就是无法以特定身份去创建执行PHP程序,这就使得用户的网站某些目录需要设置rwxrwxrwx,非常麻烦,而且也不安全。 要解决DirectAdmin的PHP-CLI的问题,大家可以参考:实现DirectAdmin使用 […]

Read more 9 Comments
未分类, 运营维护

实现DirectAdmin使用PHP-CLI模式的站点独立用户与查看各用户资源占用情况

Wordpress

用过DirectAdmin的都知道,CLI是个坑爹货:网站目录非rwxrwxrwx(777)权限无法写入,无法查看是哪个用户占用较多的资源,甚至无法正常使用opcode cache的PHP组件。 我们来研究下DirectAdmin的站点的配置文件:

关键,就在SuexecUserGroup这里,这里定义了站点的执行PHP脚本时所使用的用户身份,这样可以给不同网站的目录不同的所有者,且无需再特意给某些文件设置rwxrwxrwx(777)权限。 然而,这个东西在CGI模式下工作正常,而CLI却不正常。貌似mod_ruid2.c是Su […]

Read more 12 Comments
运营维护

使用Varnish Cache时,让Nginx获取访客真实IP

200

之前发表过一篇文章:Varnish(前)+Nginx(中)时,让Apache(后)获取用户真实IP(多重代理) 该方法能成功解决使用或者不使用CDN时,在Varnish前端,Nginx中端,Apache解析PHP文件的情况下让Apache获取访客真实IP。因为当时主要是利用Nginx进行缓存,没使用其他功能,旧没让Nginx也获取访客真实的IP。 其中Varnish处理XFF的关键代码:

也就是把客户的IP赋值给XFF。那样后端处理就方便多了。 昨天在为一台Varnish+Nginx+Apache的服务器添加并测试防轻量级CC的 […]

Read more 12 Comments