早在去年我就介绍过《DirectAdmin 安装 Nginx 前端》的方法,今天我要说一种更简单的。

通用 DirectAdmin 安装 Nginx 前端(yum)

前几天说的安装 Varnish 的缓存功能可以很大程度的提高了 PHP 的执行能力,但是除了使用 Varnish 做前端之外、Nginx 也是非常优秀的,甚至比 Varnish 更加优秀。

注意事项:

安装了 Varnish 的请不要用相同的方法来安装 Nginx 前端。

教程适用于 RHCL/CentOS 类系统。


一、使用官方源:

如果你是 CentOS 5 的话,请执行如下命令:

rpm -ivh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

如果你是 CentOS 6 的话,请执行如下命令:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

源处理好了就可以直接 yum 安装了:

yum -y install nginx

二、处理各种配置:

如下第 2 行命令有“1.2.3.4”请把它改为你服务器的 IP:

sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
sed -i 's/<VirtualHost 1.2.3.4:80>/<VirtualHost 127.0.0.1:8080 1.2.3.4:8080>/g' /etc/httpd/conf/extra/httpd-vhosts.conf
sed -i 's/80/8080/g' /etc/httpd/conf/ips.conf
echo "NameVirtualHost 127.0.0.1:8080" > /etc/httpd/conf/ips.conf
mkdir /usr/local/directadmin/data/templates/custom
cp -p /usr/local/directadmin/data/templates/virtual_host2.conf /usr/local/directadmin/data/templates/custom/virtual_host2.conf
cp -p /usr/local/directadmin/data/templates/virtual_host2_sub.conf /usr/local/directadmin/data/templates/custom/virtual_host2_sub.conf
cp -p /usr/local/directadmin/data/templates/redirect_virtual_host.conf /usr/local/directadmin/data/templates/custom/redirect_virtual_host.conf
sed -i 's/<VirtualHost |IP|:|PORT_80| |MULTI_IP|>/<VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|>/g' /usr/local/directadmin/data/templates/custom/*
echo > /etc/nginx/conf.d/default.conf
echo "nginx=ON" >> /usr/local/directadmin/data/admin/services.status

三、安装 rpaf 获取真实 IP:

Apache 2.2 安装方法:

wget https://cdn.zntec.cn/store/software/rpaf/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -cia mod_rpaf-2.0.c

Apache 2.4 安装方法:

wget https://cdn.zntec.cn/store/software/rpaf/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
yum -y install git
git clone git://gist.github.com/2716030.git
patch mod_rpaf-2.0.c 2716030/mod_rpaf-2.0.c.patch
apxs -cia mod_rpaf-2.0.c

安装好 rpaf 之后要修改 http 引入的配置:

vi /etc/httpd/conf/extra/httpd-includes.conf

在最底下加入如下代码:

#For the rpaf
<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For
</IfModule>

最后让 DirectAdmin 更新一下配置:

echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue

最后步骤:重启 Apache 与 Nginx,并设置开机启动,然后配置一下规则。

service httpd restart
service nginx start
chkconfig nginx on

这 4 个步骤都完毕之后,现在我们来修改 Nginx 规则:

vi /etc/nginx/conf.d/default.conf

这里给出一个我的例子:

server {
        listen  1.2.3.4:80;
        server_name  $http_host;

        location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;

        if ($request_filename ~* .*\.(gif|jpg|jpeg|png|bmp|swf)$)
        {
                expires      30d;
        }

        if ($request_filename ~ .*\.(js|css)?$)
        {
                expires      12h;
        }

        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;

        access_log  /var/log/http_access.log;
        }
}

更多的 nginx 规则可以在我博客或各种搜索引擎搜索一下,例如缓存、限制并发啥的。而且由于是反代的、不需要使用类似上次发出来那个自动安装的一样一个个生成规则。文章中所有的 1.2.3.4 都改为你的公网 IP,一些“云主机”多内网或网卡无外网 IP 的就把这个改为内网 IP


小结

还是 Nginx 好用,过几天考试了,考完没考到好点的学校就读社会大学了。

目前有34条回应
Comment
Trackback
Loading ....
  • v998 回应于2014/08/27 22:52 回复TA

    那么SSL 443port呢?

    • Tomas 回应于2014/08/27 23:30 回复TA

      基本需要用到 SSL 的都是动态支付页之类的吧,这类页面不缓存最好 。。不过也可以一个个加规则反带 443 端口,不过一个 SSL 证书一个规则

  • lin 回应于2014/06/20 13:30 回复TA

    --with-http_realip_module

    说的就是NGINX这个模块

    • Tomas 回应于2014/06/23 00:01 回复TA

      编译安装,加上这句。

      安装之前建议 yum remove nginx -y 先,另外的就是 yum 的默认好像就带了 realip 模块了 。。你试试看

  • lin 回应于2014/06/20 13:09 回复TA

    如果安装了,想单独配置NGINX模块的话昨配置

  • 軍師 回应于2014/06/12 12:07 回复TA

    这里面的nginx例子 配置 是对 da 所有用户生效 还得每个用户得单独配置

    • Tomas 回应于2014/06/13 20:20 回复TA

      是全部,直接反代整个端口

  • 余哥 回应于2014/06/05 10:22 回复TA

    我来要纸巾

  • 疯子 回应于2014/06/03 08:24 回复TA

    去年的时候有折腾过nginx,不过那时安装后,创建的ssh账户,没权限,各种命令都无法使用。。。

    • Tomas 回应于2014/06/03 11:15 回复TA

      纳尼,正常情况下应该不会吧,看看是不是新建用户的语法错了,useradd 就可以新建了,可能是加了一些参数新建的用户、所以没权限

      • 疯子 回应于2014/06/03 13:05 回复TA

        @Tomas: 就是正常创建的,
        面板自带的那个空间,开通附有ssh权限的空间。。。

        以前的帖子 http://www.hostloc.com/thread-210746-1-1.html 最后不了了之。。

        • Tomas 回应于2014/06/03 13:08 回复TA

          是不是 /bin 下的那些权限都给的太低了,所以其他用户执行不了 。。

          • 疯子 回应于2014/06/03 13:13 回复TA

            @Tomas: 当时yzs.me的博客也帮我看了下,不过问题也没有解决,我就当是nginx一键脚本问题了,

            奇葩了真是,检查了下,用户的shell正常,PATH正常,二进制文件权限正常,bash_*那些也正常,即使用绝对路径执行那些文件也不行,这种情况我也没遇到过,

            • Tomas 回应于2014/06/03 13:14 回复TA

              叼炸了 。。Extreme 也解决不了 。。额 。。看来我帮不到你 。。

              不过你用 yum 安装的话就不会涉及到脚本啥的,应该不会有问题。~

  • TECHNETCAL 回应于2014/06/02 23:55 回复TA

    對於 nginx 502 Bad Gateway 的話其實主因是?

    • Tomas 回应于2014/06/03 11:13 回复TA

      后端问题,没反代到 。。

  • bobo 回应于2014/06/02 17:52 回复TA

    果断表示用cp去了。。。

    • Tomas 回应于2014/06/03 11:13 回复TA

      你们这一些大土豪,求送 CP

      • bobo 回应于2014/06/03 18:14 回复TA

        @Tomas: 你推的那家带的。。。

        • Tomas 回应于2014/06/04 10:45 回复TA

          土豪。。看来越来越多人做主机了

          • bobo 回应于2014/06/04 15:43 回复TA

            @Tomas: 只是为了给妹子弄个更强大的面板

            • Tomas 回应于2014/06/04 20:38 回复TA

              土豪,目测妹子不少 。。

              • bobo 回应于2014/06/05 07:16 回复TA

                @Tomas: 我说零你信么?

                • Tomas 回应于2014/06/05 10:23 回复TA

                  我不信,那你说给妹子换面板那妹子呢

  • 进击的小浩 回应于2014/06/01 19:36 回复TA

    用不起正版DirectAdmin的路过,折腾不起开心版DirectAdmin的也路过

    • Tomas 回应于2014/06/02 01:05 回复TA

      正版授权的话其实也不贵,当然、在官网一套一套买的话是挺高价的,可以尝试去旗鱼等口碑较好的地方买,大约 ¥400 内一套。

      开心版的话注意使用场合(地区)就没关系了,可能是他没有图形界面所以很多人懒得搞 。。不过事实上是主机商入门或精通的不错选择~

    • Tomas 回应于2014/06/02 01:06 回复TA

      最重要的,DirectAdmin 对于 cPanel 的授权费用来说,更为廉价。

  • Nin 回应于2014/06/01 18:58 回复TA

    这是量产文章的节奏么。。。。。。。。

    • Tomas 回应于2014/06/02 01:04 回复TA

      被你发现了 。。

      不过这也是为了给某人灵感 。。有人问我怎么搞 LAMPNV 主机来着 。。Nginx 和 Varnish 这两篇文章结合一下就搞出来了

  • revcer 回应于2014/05/31 15:54 回复TA

    沙发...

    • Tomas 回应于2014/05/31 17:07 回复TA

      欢迎新访客~沙发送纸巾~~

  • 本篇文章没有Trackback
你目前的身份是游客,请输入昵称和电邮!