登录站点

用户名

密码

注册

查看日志|返回日志列表

nginx反向代理kloxo

2011-02-01 15:51

   同样的vps配置,5个人共用,不得不再换个思路。首先fastcgi肯定不靠普了,每个人开2个,基本上就靠swap活着了,所以一定要用apache,apache里php以模块运行,多用户可以共用,所以apache进程只需开到2-3个,使用8080端口,然后前端再放nginx做代理,顺便处理静态文件。

恩,思路很简单,但是问题是,kloxo生成的虚拟主机配置文件全是80端口,想hack一下,发现源代码全被zend加密了。后来官网svn找到源码,端口竟然都是80写死在代码里的,修改之后覆盖到server上,发现不能添加域名了,说明版本太新,最后没办法,只能恶心一下了~

每10秒钟检查一下配置文件,如果发现kloxo生成了80端口的配置文件,立刻替换成8080端口。脚本启动添加到/etc/rc.local里,开机运行。

#!/bin/sh
while [ "a"="a" ];do
        find /home/httpd/ -type f -name "kloxo.*" | xargs grep ":80\\\\"> /tmp/kloxo_port
        if [ -n "`cat /tmp/kloxo_port`" ];then
                sh /root/kloxo_changeport.sh "80" "8080"
                sleep 2
                echo "restart httpd"
                echo "restart httpd `date`" >> /var/log/httpd_restart.log
                /etc/init.d/httpd restart
        fi
        sleep 10
done#!/bin/sh
while [ "a"="a" ];do
        find /home/httpd/ -type f -name "kloxo.*" | xargs grep ":80\\\\" > /tmp/kloxo_port
        if [ -n "`cat /tmp/kloxo_port`" ];then
                sh /root/kloxo_changeport.sh "80" "8080"
                sleep 2
                echo "restart httpd"
                echo "restart httpd `date`" >> /var/log/httpd_restart.log
                /etc/init.d/httpd restart
        fi
        sleep 10
doneCopy Code 用到的两个shell脚本下载 : fuck-kloxo

OK,解决完端口问题下面就是配置ngnix代理

#仅开了一个进程。。
worker_processes  1;
配置代理

server {
        limit_conn   myzone  10;
        listen       80;
        server_name  _;
#静态文件不走代理,直接nginx处理
        location ~* .*\.(jpg|jpeg|png|gif|css|js|swf|mp3|avi|flv|xml|zip|rar)$ {
                add_header BlueNoProxy 1;
                expires 30d;
                root /home/httpd/$host/httpdocs;
        }
#html文件由可能是固态链接,所以404之后依然走代理
        location ~* .*\.(html|htm)$ {
                add_header BlueNoProxy 1;
                root /home/httpd/$host/httpdocs;
                error_page 404 = @proxy;
        }
#这里ip不能用127.0.0.1,kloxo的配置文件里会根据外网ip划分虚拟主机
        location @proxy {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
 
        }
 
        location / {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
        }
 
   }server {
        limit_conn   myzone  10;
        listen       80;
        server_name  _;
#静态文件不走代理,直接nginx处理
        location ~* .*\.(jpg|jpeg|png|gif|css|js|swf|mp3|avi|flv|xml|zip|rar)$ {
                add_header BlueNoProxy 1;
                expires 30d;
                root /home/httpd/$host/httpdocs;
        }
#html文件由可能是固态链接,所以404之后依然走代理
        location ~* .*\.(html|htm)$ {
                add_header BlueNoProxy 1;
                root /home/httpd/$host/httpdocs;
                error_page 404 = @proxy;
        }
#这里ip不能用127.0.0.1,kloxo的配置文件里会根据外网ip划分虚拟主机
        location @proxy {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;

        }

        location / {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
        }

   }Copy Code 以上,偶的最新vps配置就over了~

分享 472 次阅读 | 0 个评论

留下脚印

评论