zoukankan      html  css  js  c++  java
  • 第五节 Nginx集群

     

     

    给140和143安装Nginx

    #web02
    [root@web02 ~]# sh nginx_install
    [root@web02 ~]# echo web02 > /usr/local/nginx/html/index.html
    [root@web02 ~]# yum -y install elinks &>/dev/null
    [root@web02 ~]# /usr/local/nginx/sbin/nginx
    [root@web02 ~]# elinks http://localhost -dump
    web02

    配置140的config

    删除不需要的配置信息

    sed -i '/#/d' nginx.conf
    sed -i '/^$/d' nginx.conf

    删掉location下的数据

    配置upstream

    检查

    轮流分发

    Nginx分发算法

     

     

    基于轮训分发

    修改config文件

    保存 重启Nginx

    ip_hash

    修改config文件

    保存 重启Nginx

     使用41访问

     服务器状态

    修改config状态为backup

     

    因为是backup 和 ip_hash 无法同时使用(Ip_hash balancer does not support backup servers and weight)

     删除掉ip_hash后

     142down的时候

    基于请求头(host)的分发

    修改config 

    保存 重启Nginx

    用143修改hosts文件

    143访问

     基于开发语言分发

    killall 142的Nginx

    安装Apache php

     yun -y install httpd php

    修改140的config

    保存 重启 Nginx

    142启动Apache

    systemctl start httpd

     

    写php页面

    echo "<?php phpinfo(); ?>" > /var/www/html/index.php

    浏览器访问 http://192.168.0.142/index.php

     浏览器访问http://192.168.0.140/index.html

    浏览器访问http://192.168.0.140/index.php (此处的IP是140 不是142)

    基于浏览器分发

    修改142做个虚拟主机

    停止Apache

    建立虚拟主机

    修改config文件

     创建web3文件夹

     访问

    修改140的config

    保存重启Nginx

    140访问

     

     142访问

    143访问

    谷歌访问

    其他浏览器访问

     源于IP分发

    修改config

    保存重启

    141访问

     142访问

    其他ip访问

    高可用集群

     

     

    修改140 config

    worker_processes 1;
    events {
    worker_connections 1024;
    }
    http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    upstream web {
    server 192.168.0.142;
    server 192.168.0.143;
    }
    server {
    listen 80;
    server_name www.web1.com;
    location / {
    proxy_pass http://web;
    }
    }
    }

    测试分发

    拷贝config文件到141

    scp nginx.conf 192.168.0.141:/usr/local/nginx/conf/

     测试

    配置keepalived.con

    进入

    修改

    !Configuration File for keepalived
    global_defs {
    router_id NGINX_DEVEL
    }
    vrrp_script check_nginx {
    script "/etc/keepalived/nginx_pid.sh"
    interval 2
    fall 1
    }
    }
    vrrp_instance nginx {
    state MASTER
    interface ens33
    mcast_src_ip 192.168.0.140
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1111
    }
    track_script {
    check_nginx
    }
    virtual_ipaddress {
    192.168.0.213/24
    }
    }

     配置nginx_pid.sh

    /etc/keepalived/nginx_pid.sh

    #!/bin/bash
    nginx_kp_check () {
    nginxpid=`ps -C nginx --no-header |wc -l`
    if [ $nginxpid -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 1
    nginxpid=`ps -C nginx --no-header |wc -l`
    if [ $nginxpid -eq 0 ];then
    systemctl stop keepalived
    fi
    fi
    }

     

     检查 是否有213的ip

     启动

    systemctl restart keepalived

     

    检查213ip

    访问213

    tcpdump -nn -vvv -i ens33 vrrp

    检测网络包

    拷贝140的config文件到141上

    修改141的config文件

     拷贝nginx_pid.sh

    启动141的keepalived

    检查141的ip 没有213IP 因为是备份的

     

    模拟主机挂掉

    打开141 的message

     停止140主机的Nginx

     

    检查140的是否 自动启动 

    没有自动启动因为脚本有问题

    原因脚本没有给权限 

    增加权限140 141

    重新启动keepalived141

     

    killall后 检查

    自动重启

    检查systemctl status keepalived.service 出现

    Error exec-ing command '/etc/keepalived/nginx_pid.sh', error 2: No such file or directory

    解决方法 https://blog.csdn.net/yuyedewutong/article/details/82530757

     

    测试  

  • 相关阅读:
    vim使用
    .net程序员转java之mybatis学习
    Redis 学习笔记
    Effective C# 笔记01
    Android 开发感想
    入职两个月,WPF开发感想
    Oracle 学习笔记二
    Oracle 开发使用笔记一
    Java 集合——Map集合
    Java 集合——Set集合
  • 原文地址:https://www.cnblogs.com/zhanleishang/p/10680138.html
Copyright © 2011-2022 走看看