您的位置:首页 > 运维架构 > Nginx

nginx 自动安装脚本 For cPanel

2011-11-17 16:02 731 查看
版本更新啦!现在安装包支持proxy_cache模块,支持密码保护目录、自定义错误页面等。并且支持wildcard泛域名解析!如果需要更新新版本的nginx前端。先卸载旧版本,再安装新版本。如果你有任何意见或建议,请与我联系。

2010-11-08
updated 此版本暂不支持cpanel 11.26以上的版本.

为cPanel主机添加nginx服务器软件,这样可以让nginx跑在前端处理静态文件,并且加装nginx后的资源消耗比单纯跑apache少很多.在找cPanel hack的资料的时候,刚好看到cPanel官方论坛上的一个牛人写的一个安装脚本,仔细拜读了一遍代码之后,决定在自己的cPanel服务器上安装.在使用过程中也渐渐发现了一些可以优化.可以增加的特性,主要是nginx上的一些新特性,籍由这些特性,完成了平时似乎不能完成的功能,例如在高并发的机器上实现的服务器端的缓存功能,以及nginx作为前端的时候使用.htaccess进行目录保护.这些特性都大大方便了我们的使用.

这里引用cPanel Forums上的帖子.作者blargman写了一个专门为cPanel打造的nginx自动安装脚本.

Evidently I don't know hot to post in the right forum.

This is an automated nginx installer
for cpanel.
Integrates so that domain adding/removal is all done automatically.

Some people had asked for cpanel support. In lieu of that, this does pretty much everything I can think of that they would do. It creates a vhost for each domain/addon/subdomain and serves up static content.

Let me know if you have any thoughts/questions or better yet suggestions.
http://blargman.com/public.tar

以上是作者原文,原文地址:点击这里.
4000

安装方法很简单(建议做好备份),如下:

cd
/usr/local/src

wget http://blargman.com/public.tar 
tar xf public.tar

cd publicnginx

./nginxinstaller install


安装好之后,重启nginx,执行命令:/etc/init.d/nginx restart.Nginx的配置文件均在/etc/nginx当中,各用户绑定的域名(附加域,子域等)均在/etc/nginx/vhosts

卸载:

进入publicnginx目录后执行
./nginxinstaller
uninstall.


-------------------------------------------------------------------------------------------------------------------------------------

我在作者编写代码的基础上增加了缓存功能,以及更多功能上的支持,例如防盗链,自定义错误页面等.为方便大家使用.做出的修改我已经打包成修改版的安装包.

有朋友问到我的版本和论坛里原版本的差别是在哪.我的版本解决了哪些问题.这是大部分用户的问题,这里集中进行回答.

1.完善的目录密码保护功能 -- 这个在原作者的安装包里面,并不能做到,原因在于没有对401状态码进行判断.

2.伪静态功能的实现 -- 不管你的是以html结尾的还是以"/" 结尾的URL地址,nginx会提前判断文件系统中是否存在该文件/目录,如果不存在,那么就会匹配到后端的apache.后端的apache根据.htaccess文件的设置,进行页面的展示,前端nginx获取到内容后便进行压缩,然后传递给访客浏览器中.

3.访问日志准确记录 -- 原作者的安装包中,是nginx与apache共用同个日志文件进行记录.nginx记录静态页面的访问信息,apache记录动态页面访问信息,理论上可行.但在实际使用中,我发现了这个问题.这个问题一个突破口在于对后缀.html匹配的时候,同时查询了前端nginx及后端的apache.这样就造成了日志的重复.另外一个是一些没有匹配到的后缀,前端不仅处理了访客的请求并进行记录,还会向后端发起请求查询.但由于大文件不会很快就传输完毕,因此即便设置了keepalive也无济于事.在我的安装包中,我将后端的用户配置中非加密端口的日志功能取消了,完全由前端的nginx进行记录.

4.日志切割问题 -- 这个问题来自前面说的第3点修改,如果只是修改了第3点而没有进行这一步,那么就会碰到一个问题:当执行用户访问日志切割并转为统计页面展示给用户看,系统会自动将用户的日志删除,导致这之后的日志访问信息丢失直至下次nginx重启.在对cpanel日志统计进程的跟踪后,找出/usr/local/cpanel/bin/safeapacherestart这行.这行的作用是让日志切割后的apache可以安全的重新启动.解决办法就是一改作者重启nginx的方式,我将重启nginx的信息加入apache的重启命令中,以后只需要对apache进行命令操作就可以了.

5.泛域名解析 -- cpanel支持泛域名解析,而且在作为主机商而言,泛域名也是一个特色,需要用起来.但是作者的版本以及我之前修改的版本中,并没有对这块进行支持,一旦客户绑定了泛域名,就会使nginx无法启动,全部用户的网站受影响.那么这次的更新就包含了这个功能.

6.基于proxy_cache的缓存系统 -- 这个是我添加的,为可选功能.

另外需要注意的,网友们提到的一个是重启nginx后的那一串提示.这个警告信息是提示你主机名存在错误,不影响使用.

安装方法与作者原版一样.请执行如下安装!

cd
/usr/local/src

wget http://icodex.org/public.tar 
tar xf public.tar

cd publicnginx

./nginxinstaller install


注意:如果之前安装了作者原版本的nginx,请先卸载后再执行安装.

原文转自:http://icodex.org/2010/02/nginx%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC-for-cpanel/comment-page-1/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息