负载平衡(1) –CentOS 5 之 Nginx

目标,另用一台机器(Nginx服务)实现LoadBalance,另外两台为Web Server(apache)

  1. 使用ssh登陆

    #ssh root@111.111.111.111

  2. 确认Linux 版本

    #lsb_release -a

    原来这次是 CentOS 5.5(Final),如果命令找不到,可以用

    #cat /etc/redhat-release

  3. 确认PHP安装

    #yum list | grep php

  4. 如果不能肯定PHP是否完全安装

    #yum install php

  5. 查看Apache的httpd.conf,确认DocumentRoot地址

    #vi /etc/httpd/conf/httpd.conf

  6. 建立一个测试用index.php

    #vi /var/www/html/index.php

    里面就一行

    <?php phpinfo(); ?>

  7. 启动Apache

    #/etc/ini.d/httpd start

  8. 远程无法访问,在远程使用

    #telnet 111.111.111.111 80

    ,结果无法连接

  9. 设置防火墙

    # vi /etc/sysconfig/iptables

    在类似的位置加入一行

    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

    重新启动

    # /etc/init.d/iptables restart

  10. OK 访问 http://111.111.111.111/,可以正常访问了
  11. 下载gnix

    #wget http://www.nginx.org/download/nginx-0.8.53.tar.gz$ tar xvzf nginx-0.8.53.tar.gz
    # mkdir -p /usr/local/src/nginx
    # mv nginx-0.8.53 /usr/local/src/nginx/0.8.53

  12. Configure 分别报了没有C编译器,没有PCRE,没有MD5,所以需要安装

    #yum install gcc
    #yum install pcre pcre-devel
    #yum install openssl openssl-devel
    #yum .configure

  13. 编译安装

    #make
    #make install

  14. 建立一个快捷方式

    # ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

  15. 在另外一台机器中的index.php记入以下

    <?php
    echo(“Test Success!I am Another WebServer “);
    phpinfo();
    ?>

  16. 设置本地Nginx的conf

    vi /usr/local/nginx/conf/nginx.conf

    http {

    upstream myproject{
    server 111.111.111.112:80;
    server 111.111.111.113:80;
    }

    server {
    listen       80;
    server_name  111.111.111.111;

    location / {
    proxy_pass http://myProject;
    }

  17. 访问以下本地http://111.111.111.111/看是不是直接balance到了另外一台机器咯。