zoukankan      html  css  js  c++  java
  • nginx做负载均衡+keepalived(做主备)

    部署Nginx

    一,安装nginx依赖:
     查看是否已经安装
     rpm -qa |grep gcc
     rpm -qa |grep openssl-devel
     rpm -qa |grep pcre-devel
     rpm -qa |grep zib-devel

    安装:
     yum -y install 上面的依赖


    二,安装nginx

    ./configuration
    make
    make install



    Configuration summary
      + using system PCRE library
      + OpenSSL library is not used
      + md5: using system crypto library
      + sha1: using system crypto library
      + using system zlib library

      nginx path prefix: "/usr/local/nginx"
      nginx binary file: "/usr/local/nginx/sbin/nginx"
      nginx configuration prefix: "/usr/local/nginx/conf"
      nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
      nginx pid file: "/usr/local/nginx/logs/nginx.pid"
      nginx error log file: "/usr/local/nginx/logs/error.log"
      nginx http access log file: "/usr/local/nginx/logs/access.log"
      nginx http client request body temporary files: "client_body_temp"
      nginx http proxy temporary files: "proxy_temp"
      nginx http fastcgi temporary files: "fastcgi_temp"
      nginx http uwsgi temporary files: "uwsgi_temp"
      nginx http scgi temporary files: "scgi_temp"

    /usr/local/nginx/conf/
    上传已经配置好的proxy.conf&&nginx.conf

    nginx.conf:

    #user  nobody;
    worker_processes  9;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    error_log  logs/error.log  error;
    
    pid        logs/nginx.pid;
    
    
    events {
        worker_connections  8000;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        upstream myserver{
               #ip_hash;
        server 192.168.1.201:9276;
        server 192.168.1.201:9277;
        server 192.168.1.202:9276; 
        }
    
        server {
            listen       9288;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
            proxy_pass http://myserver;
            proxy_next_upstream http_500 http_503 error timeout invalid_header;
            include /usr/local/nginx/conf/proxy.conf; 
                #root   html;
                #index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    }

    红色表示需要根据实际修改的地方!

    proxy.conf:

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;



    启动:
    /usr/local/nginx/sbin/nginx

    检查配置文件(修改后是否正确)
    /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
     


    主从备份:keepalived

    tar zxvf keepalived-1.2.7.tar.gz
    cd keepalived-1.2.7
    ./configure
    make
    make install

    cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
    cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    mkdir /etc/keepalived
    cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
    cp /usr/local/sbin/keepalived /usr/sbin/


    配置:


    /etc/keepalived/keepalived.conf

    主:

    ! Configuration File for keepalived
    
    global_defs {
       router_id LVS_DEVEL
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 78
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
     
       virtual_ipaddress {
            192.168.1.233
            #192.168.1.234
        }
    }
    #    delay_loop 2
    #    lb_algo rr
    #    lb_kind DR
    #    nat_mask 255.255.255.0
    #    persistence_timeout 1
    #    protocol TCP
    
    #    real_server 192.168.1.204 9496 {
    #        weight 1
    #        TCP_CHECK {
    #            connect_timeout 2
    #            nb_get_retry 2
    #            delay_before_retry 2
    #        }
    #    }
    #}

     从:

    ! Configuration File for keepalived
    
    global_defs {
       router_id LVS_DEVEL
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 78
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
     
       virtual_ipaddress {
            192.168.1.233
            #192.168.1.234
        }
    }
    #    delay_loop 2
    #    lb_algo rr
    #    lb_kind DR
    #    nat_mask 255.255.255.0
    #    persistence_timeout 1
    #    protocol TCP
    
    #    real_server 192.168.1.204 9496 {
    #        weight 1
    #        TCP_CHECK {
    #            connect_timeout 2
    #            nb_get_retry 2
    #            delay_before_retry 2
    #        }
    #    }
    #}



    /etc/init.d/keepalived start
    /etc/init.d/keepalived stop

    加入启动服务

    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

    echo "/etc/init.d/keepalived start" >> /etc/rc.local

    这里上传已经好的配置文件:

    下载

  • 相关阅读:
    化零为整WCF(5) 宿主Hosting(宿主在IIS, Application, WAS, WindowsService)
    使用Aspose.Cell控件实现Excel高难度报表的生成(三)
    Winform开发框架之动态指定数据表
    Winform分页控件之纯分页显示处理
    利用Aspose.Word控件实现Word文档的操作
    代码生成工具之Winform查询列表界面生成
    代码生成工具之界面快速生成
    Winform开发中手写签名的实现
    代码生成工具之数据库表及字段名称转义
    Winform开发框架之通用附件管理模块
  • 原文地址:https://www.cnblogs.com/tankaixiong/p/4065080.html
Copyright © 2011-2022 走看看