zoukankan      html  css  js  c++  java
  • 快速搭建内网测试网络,简单模拟WEB集群

    svn项目

    模拟WEB集群

    后端WEB集群192.168.1.231:8080和192.168.1.232:8080.WEB后端可以按照需要增加,不同目录启动不同端口,通过使用192.168.1.231:80作为负载均衡访问.

    upstream  www.front.com
    {
        server   192.168.1.232:8080;
        server   192.168.1.231:8080;
    }
    
    server
    {
        listen  80;
        server_name  192.168.1.231;
    
        location / {
            proxy_pass        http://www.front.com;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    }
    
    SVN自动发布

    使用SVN提交时,注释中输入"auto_deploy",自动发布到231,232的项目测试服务器.svn钩子文件post-commit

    #!/bin/bash
    
    REPOS="$1"
    REV="$2"
    if ( svnlook log -r $REV /data/www/svn/gtl/ |grep "auto_deploy" )
    then
    
        echo "`date` auto_deploy">> /tmp/testsvn.log
    #front1
        ssh root@192.168.1.231 'svn revert -R /data/wwwroot/gtl --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.231 'svn update /data/wwwroot/gtl/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.231 'chown www.www -R /data/wwwroot/gtl'
    
    #front2
        ssh root@192.168.1.232 'svn revert -R /data/wwwroot/gtl --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.232 'svn update /data/wwwroot/gtl/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.232 'chown www.www -R /data/wwwroot/gtl'
    
    #admin
        ssh root@192.168.1.232 'svn revert -R /data/wwwroot/admin/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.232 'svn update /data/wwwroot/admin/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.232 'chown www.www -R /data/wwwroot/admin'
    
    
    #API
        ssh root@192.168.1.235 'svn revert -R /data/wwwroot/api/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.235 'svn update /data/wwwroot/api/ --username "sylar" --password "gtl1023"'
        ssh root@192.168.1.235 'chown www.www -R /data/wwwroot/api'
    fi
    
    另外一个SVN钩子,强制SVN提交时输入注释
    #!/bin/sh
    REPOS="$1"
    TXN="$2"
    SVNLOOK=/usr/bin/svnlook
    LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)
    if [ "$LOGMSG" -lt 10 ]; then
    echo -e "
     提交文件时必须添加注释,提交中止."1>&2
    exit 1
    fi
    

    git项目

    GIT钩子post-receive

    代码服务器的git用户需要对目标机器做ssh密钥授权,并且保证能够以目标机器的sudo用户登录

    #!/bin/sh
    
    IS_BARE=$(git rev-parse --is-bare-repository)
    if [ -z "$IS_BARE" ]; then
    echo >&2 "fatal: post-receive: IS_NOT_BARE"
    exit 1
    fi
    
    unset GIT_DIR
    
    echo "==============================================="
    
    ssh gtl@xxx.xxx.xxx.xxx '/bin/bash /home/project/local.sh'
    ssh gtl@xxx.xxx.xxx.xxx '/bin/bash /home/project/local.sh'
    ssh gtl@xxx.xxx.xxx.xxx '/bin/bash /home/project/local.sh'
    
    echo "====================done======================="
    
    目标机local.sh

    目标机器需要首先克隆仓库到本地/data/source_code/. /data/backup/settings.py为项目的配置文件,先备份再cp,然后重启项目.目标机器的git需要cp,chown权限

    #!/bin/bash
    cd /data/source_code/
    sudo git pull
    sudo cp /data/wwwroot/project/bcdemo/settings.py /data/backup/settings.py -f
    sudo cp /data/source_code/* /data/wwwroot/project/ -a
    sudo cp /data/backup/settings.py /data/wwwroot/project/bcdemo/settings.py -f
    sudo chown www.www /data/wwwroot/project/ -R
    sudo systemctl stop demo
    sudo systemctl restart demo
    sudo echo "update done,`date -d today +"%Y-%m-%d %T"`" >> /home/project/test.txt
    
  • 相关阅读:
    MySQL版本详解
    数据库安全[一]
    python itertools模块学习
    两列布局实例
    Linux 原始套接字抓包实例
    [转]Linux终端快捷键
    SQL中的LEFT JOIN 和 RIGHT JOIN 以及INNER JOIN
    twisted框架入门笔记(1)
    一个关于lambda的题目
    找出数组中仅仅一个出现两次的数
  • 原文地址:https://www.cnblogs.com/ops-sylar/p/9158768.html
Copyright © 2011-2022 走看看