找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 131|回复: 17

适用于Directadmin面板的Nginx自动安装脚本

[复制链接]

21

主题

102

回帖

275

积分

中级会员

积分
275
发表于 2010-9-25 14:58:04 | 显示全部楼层 |阅读模式
作者:iCodex
来源:iCodex's Blog
地址:http://icodex.org/2010/05/directadmin-nginx-automated-installer/


论坛的debian童鞋拿了人家的代码,改了下注释发上来,只发了install.sh,没有卸载的脚本。

这里有完整的。

个人比较偏爱apache,但apache也有不足的地方.比如处理静态请求上.apache会很费劲.nginx也是比较喜欢的一个轻型http服务器.但nginx用fast-cgi跑php也有不足.所以我做了组合,前端跑nginx,后端跑apache.运行了一段时间之后.发现真的不错.所以就一直推荐周遭的朋友这样用.这些日子折腾了好久.终于完成了在Directadmin面板基础上安装nginx的自动安装脚本.这次更新的与前段时间发布的教程不同.这次将nginx真正放到了前端.静态资源完全由nginx处理.后端的apache处理的请求仅限于动态.真正做到动静分离.这样就可以负载更多的访问了.

另外给每个虚拟主机设置了缓存及更完善的防盗链支持.

安装我写了一个脚本.下载后执行就可以了(仅限于centos系统).但是有一个前提:必须在全新安装directadmin面板的机器上安装,这是个已知问题.

安装方法:

wget http://icodex.org/dl/directadmin/install.sh
chmod 755 install.sh
./install.sh

卸载方法:

wget http://icodex.org/dl/directadmin/uninstall.sh
chmod 755 uninstall.sh
./uninstall.sh

如果有任何建议或疑问,请发邮件给我(admin@evlit.com) 谢谢!

[ 本帖最后由 mudfrog 于 2010-9-25 15:00 编辑 ]
回复

使用道具 举报

148

主题

1803

回帖

4084

积分

论坛元老

积分
4084
发表于 2010-9-25 15:00:08 | 显示全部楼层
好好学习一下了,不过穷人用不起DA
回复

使用道具 举报

30

主题

346

回帖

812

积分

高级会员

积分
812
发表于 2010-9-25 15:00:50 | 显示全部楼层
学习了。
回复

使用道具 举报

813

主题

5960

回帖

1万

积分

论坛元老

积分
14413
发表于 2010-9-25 15:04:35 | 显示全部楼层
不想制造矛盾,但是实在觉得 拿了人家的脚本 改了注释不加说明的发布出来 是不妥的。
尤其还没发完整 尤其是只支持centos的,万一人家拿了在别的系统上装呢。。。
回复

使用道具 举报

21

主题

102

回帖

275

积分

中级会员

积分
275
 楼主| 发表于 2010-9-25 15:06:17 | 显示全部楼层
一直有个疑问  绑定域名什么的是da操作还是nginx?
回复

使用道具 举报

35

主题

637

回帖

1435

积分

金牌会员

积分
1435
发表于 2010-9-25 15:10:52 | 显示全部楼层
支持楼主下
回复

使用道具 举报

361

主题

1433

回帖

4007

积分

论坛元老

积分
4007
发表于 2010-9-25 15:17:38 | 显示全部楼层
proxypass http://$host:xx
就行了。具体的,是后端Apache负责域名

[ 本帖最后由 renothing 于 2010-9-25 16:03 编辑 ]网上流传的脚步是有毛病的,把所有都转发到后端去了。没有起到我们使用nginx的作用。

最后奉劝大家一句.DA的默认方式,安全是很大的问题。对于开了shell权限的来说,open_basedir就是个摆设了。

详情看这里
http://blog.37hi.com/archives/235/

[ 本帖最后由 renothing 于 2010-9-25 16:06 编辑 ]
回复

使用道具 举报

368

主题

2451

回帖

6020

积分

论坛元老

积分
6020
发表于 2010-9-25 15:46:23 | 显示全部楼层
原帖由 renothing 于 2010-9-25 16:02 发表


网上流传的脚步是有毛病的,把所有都转发到后端去了。没有起到我们使用nginx的作用。

最后奉劝大家一句.DA的默认方式,安全是很大的问题。对于开了shell权限的来说,open_basedir就是个摆设了。

详情看这里
http://blog. ...


不错.但在虚拟主机DA面板当中,要顾虑的东西会比较多.
例如成员设置错误页面,当访问一个不存在的页面的时候,nginx无法定位到具体路径就会返回错误,如果这个时候返回到后端的apache进一步匹配错误页面的设置就可以避免这种情况的发生,减轻了实施错误页面设置的复杂度.
我的脚本中一样会把页面返回到后端进行查询,但对于一个存在的文件来说,就只有优先级别的不同了(优先由nginx解析).
nginx在整个系统中无法做到像单用户那样灵活.可以一试.呵呵

防盗链这块,其实我是添加了两条参数,
proxy_set_header   Referer $http_referer;proxy_set_header   Cookie $http_cookie;
具体看proxy.inc:[ol]
  • proxy.inc
  • proxy_connect_timeout 30s;
  • proxy_send_timeout   90;
  • proxy_read_timeout   90;
  • proxy_buffer_size    64k;
  • proxy_buffers     16 32k;
  • proxy_busy_buffers_size 64k;
  • #proxy_pass http://127.0.0.1:81;
  • proxy_pass_header Set-Cookie;
  • proxy_redirect     off;
  • proxy_hide_header  Vary;
  • proxy_set_header   Accept-Encoding '';
  • proxy_ignore_headers Cache-Control Expires;
  • proxy_set_header   Referer $http_referer;
  • proxy_set_header   Host   $host;
  • proxy_set_header   Cookie $http_cookie;
  • proxy_set_header   X-Real-IP  $remote_addr;
  • proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;[/ol]复制代码
  • 回复

    使用道具 举报

    58

    主题

    734

    回帖

    1690

    积分

    金牌会员

    积分
    1690
    发表于 2010-9-25 15:54:13 | 显示全部楼层
    你完全可以用if ( !-e $request_filename) 来结合着用。如果全部转向后端,则没有了任何实质性意义:说缓存吧,也没看到用proxy_cache,说处理静态文件吧,又全部转到Apache了。
    "

    这些是可以伪造的。正确的做法是ngx_http_accesskey_module 或者转向后端脚本判断。

    [ 本帖最后由 renothing 于 2010-9-25 17:20 编辑 ]
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2010-9-25 15:55:15 | 显示全部楼层
    原帖由 renothing 于 2010-9-25 17:18 发表


    你完全可以用if ( !-e $request_filename) 来结合着用。如果全部转向后端,则没有了任何实质性意义:说缓存吧,也没看到用proxy_cache,说处理静态文件吧,又全部转到Apache了。

    这些是可以伪造的。正确的做法是ngx_http_acce ...

    的确是可以用判断的方式来做到,但这里之所以会留下来,是因为if (!-e $request_filename)语句也有它局限的地方,例如当用户提交带参数的URL地址链的时候(如http://youdomain.com/about.html?comments),就需要使用try_files进行转发.但try_files这个无法写进if (!-e $request_filename)语句当中.所以不使用if语句是有原因的.
    proxy_cache后来我删除了.因为大部分程序使用,用户反映都有问题,例如一些文章系统,更新了文章之后并没有发送PURGE刷新缓存的信号到nginx.那这样就会给用户访问带来很大麻烦.

    proxy_cache如果要使用,我建议参考这篇文章介绍的实现方法及刷新缓存的方法.http://sudone.com/nginx/nginx_cache_purge.html




    [ 本帖最后由 诡谲 于 2010-9-25 18:03 编辑 ]
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 18:04 , Processed in 0.045427 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表