发表于: 2018-02-08 22:55:22

1 779


今天完成:
1—负载均衡
    负载均衡是为了实现多个服务器之间的负载均衡。也就是说如果某一个服务器任务太多,其他服务器比较清闲,那么负载均衡就会将新的任务分配给比较清闲的服务器。防止有的服务器应为过载而崩溃,有的服务器却没有任务,导致资源浪费。
    实现负载均衡只需要在nginx的配置文件中进行设置。编辑nginx.conf的如下内容。
    upstream tomcat_resin_jetty{
        server 39.107.75.185:8080 weight=1;
        server 39.107.75.185:8081 weight=1;
        server 39.107.75.185:8090 weight=1;
    }
    server {
        listen       80;
        server_name  39.107.75.185;
        #charset koi8-r;
       #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://tomcat_resin_jetty;
            root   html;
            index  index.html index.htm;
        }
其中upstream是新增的项目,upstream是关键词,tomcat_resin_jetty是我给他起的名字,因为我要负载均衡的是我的三个服务器tomcat_resin_jetty,然后server中的proxy_pass项目改成http://tomcat_resin_jetty; 指向自己配置的三个服务器,意思是nginx需要同时代理这三个服务器。weight表示三个服务器所占的比重,nginx将会按照比例分配任务给这三个服务器。
修改之后记得使用./nginx -t命令检查一下自己修改的配置文档是否有语法问题,如果没有问题,使用./nginx -s reload命令重启nginx,让配置生效。
验证:我使用谷歌浏览器,Safari浏览器和自己的手机浏览器分别访问我的域名,分别使用了三个服务器。说明成功。
2—在服务器上部署脚本,统计nginx访问次数,统计响应延迟时间
    (1)在网上找到一个教程,地址:https://www.centos.bz/2012/11/shell-scrpit-auto-count-log/, 仿照写了一个脚本。
    (2)遇到一个坑,统计访问次数的语句是这样的:
  1. total_visit=`wc -l ${log_path} | awk '{print $1}'`
其中有一个 ` 标点,错看成了单引号 ‘ ,结果运行报错:
原来 ` 这个标点叫反单引号,是计算机中应用比较多的一个符号,非常容易跟单引号 ‘ 混淆。get了。
    (3)脚本是这样的,
#!/bin/bash
#This is only for testing. date = 20180206 16:01
#I want to change it to nginx access count. date=20180208 16:17
log_path=/usr/local/nginx/logs/access.log
maketime=`date +%Y-%m-%d" "%H":"%M`
logdate=`date -d "yesterday" +%Y-%m-%d`
total_visit=`wc -l ${log_path} | awk '{print $1}'`
total_bandwidth=`awk -v total=0 '{total+=$10}END{print total/1024/1024}' ${log_path}`
total_unique=`awk '{ip[$1]++}END{print asort(ip)}' ${log_path}`
ip_pv=`awk '{ip[$1]++}END{for (k in ip){print ip[k],k}}' ${log_path} | sort -rn | head -20`
url_num=`awk '{url[$7]++}END{for (k in url){print url [k],k}}' ${log_path} | sort -rn | head -20`
notfound=`awk '$9 == 404 {url[$7]++}END{for (k in url){print url[k],k}}' ${log_path} | sort -rn | head -20`
echo "概况\n报告生成时间:${maketime} \n总访问量:${total_visit}\n总宽带:${total_bandwidth}M\n独立访客:${total_unique}\n\n访问IP统计\n${ip_pv}\n\n访问url统计\n${url_num}\n\n>找不到页面404错误数量\n${notfound}\n\n"
运行脚本结果:
按照这个教程中的例子,可以实现将这些信息以邮件的形式发送的邮箱里边,但是因为不太需要,所以没有做。
3— top命令查看WEB服务器占用内存和CPU
        这个实现起来很简单,就是在命令行输入top点击回车就可以,但是真正的功夫在理解显示的信息。在百度搜了一下,有一个博客讲的很好。https://www.cnblogs.com/dragonsuc/p/5512797.html
        top命令经常用来监控Linux的系统状况,比如CPU、内存的使用。
其中第三行开始就是CPU的状态,上图中的服务器是四核,所以会有CPU0~CPU3,我的服务器是单核的,所有只有一行。
后边的数据的意思分别是:
 0.3% us — 用户空间占用CPU的百分比。
    0.0% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    99.7% id — 空闲CPU百分比
    0.0% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行Mem开头的就是内存情况:
3808060k total — 物理内存总量(4GB)
3660048k used — 使用中的内存总量(3.6GB)
148012k free — 空闲内存总量(148M)
359760k buffers — 缓存的内存量 (359M)
其他参数在博客里也有很好的说明,暂时还是不太理解。


明天计划:

继续学习脚本,编写自动部署项目的脚本。
开始任务四。


遇到问题:


收获:

学会了写脚本。



返回列表 返回列表
评论

    分享到