标签 负载 下的文章

Nginx记录请求分发日志及后端负载的IP

前端nginx接收到请求之后, 需把请求分发到后端WEB服务集群,需要记录分发日志, 来分析后端每台WEB服务器处理的请求数目,日志里面需要记录客户端IP、每个URL请求是哪个后端处理的,nginx配置文件如下:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
              '$connection $upstream_addr '
              'upstream_response_time $upstream_response_time request_time $request_time ';
    access_log  logs/access.log  main;

参数说明:

$server_name:虚拟主机名称。
$remote_addr:远程客户端的IP地址,请求者IP。
-:空白,用一个“-”占位符替代,历史原因导致还存在。
$remote_user:远程客户端用户名称,用于记录浏览者进行身份验证时提供的名字,如登录百度的用户名scq2099yt,如果没有登录就是空白。
[$time_local]:访问的时间与时区,比如07/Jun/2016:08:54:27 +0800,时间信息最后的"+0800"表示服务器所处时区位于UTC之后的8小时。
$request:请求的URI和HTTP协议,这是整个PV日志记录中最有用的信息,记录服务器收到一个什么样的请求
$status:记录请求返回的http状态码,比如成功是200。
$uptream_status:upstream状态,比如成功是200.
$body_bytes_sent:发送给客户端的文件主体内容的大小,比如899,可以将日志每条记录中的这个值累加起来以粗略估计服务器吞吐量。
$http_referer:记录从哪个页面链接访问过来的。
$http_user_agent:客户端浏览器信息
$http_x_forwarded_for:客户端的真实ip,通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
$ssl_protocol:SSL协议版本,比如TLSv1。
$ssl_cipher:交换数据中的算法,比如RC4-SHA。
$upstream_addr:upstream的地址,即真正提供服务的主机地址。
$request_time:整个请求的总时间。
$upstream_response_time:请求过程中,upstream的响应时间。

---阅读剩余部分---

使用gotop查看系统负载情况

Gotop 是一个 TUI 图形活动监视器,使用 Go 语言编写。它是完全免费、开源的,受到了 gtop 和 vtop 的启发。
在此简要的指南中,我们将讨论如何安装和使用 Gotop 来监视 Linux 系统的活动。
Gotop 是用 Go 编写的,所以我们需要先安装它。要在 Linux 中安装 Go 语言,请参阅以下指南。
安装 Go 之后,使用以下命令下载最新的 Gotop 二进制文件。
安装:

sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)"

将下载的二进制文件移动到您的 $PATH 中:

cp gotop /usr/local/bin

赋予执行权限

chmod +x /usr/local/bin/gotop

从终端直接运行gotop命令即可:
命令参数:

c – CPU
m – 内存
p – PID

对于进程浏览,请使用以下键。

上/下 箭头或者 j/k 键用于上移下移。
Ctrl-d 和 Ctrl-u – 上移和下移半页。
Ctrl-f 和 Ctrl-b – 上移和下移整页。
gg 和 G – 跳转顶部和底部。

按下 TAB 切换进程分组。要杀死选定的进程或进程组,请输入 dd。要选择一个进程,只需点击它。要向下/向上滚动,请使用鼠标滚动按钮。要放大和缩小 CPU 和内存的图形,请使用 h 和 l。要显示帮助菜单,只需按 ?。
gotop.png

via: https://www.ostechnix.com/gotop-yet-another-tui-graphical-activity-monitor-written-in-go/
github: https://github.com/cjbassi/gotop

Nginx的upstream负载均衡参数说明

nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了,才剔除:
nginx的upstream目前支持的5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver { 
server 10.10.5.3:8000 max_fails=3 fail_timeout=10s; 
server 10.10.5.4:8000 max_fails=3 fail_timeout=10s;
}



---阅读剩余部分---

Nginx+Keepalived高可用

在azure上部署应用的时候,微软自带load balance,可以添加高可用集,来实现高可用,在自建机房或非云环境下(无提供VIP)的时候Keepalived就用用武之地了;

keepalived是基于VRRP协议(虚拟路由冗余协议Virtual Router Redundancy Protocol)来实现的,将N台提供相同功能的路由器组成一个路由器组(Router Group),这个组里面有一个master和多个backup,但在外界看来就像一台一样,构成虚拟路由器,拥有一个虚拟IP(vip,也就是路由器所在局域网内其他机器的默认路由),占有这个IP的master实际负责ARP相应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。master会发组播消息,当backup在超时时间内收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master,保证路由器的高可用。

---阅读剩余部分---

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

  一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。

---阅读剩余部分---

最新

分类

归档

评论

  • Liang: 贴下编译参数和步骤,...
  • shao3911: 您好,为什么我在编译...
  • aliang: 先看是yum安装还是...
  • aliang: 将原来的nginx安...
  • yen: 3、如果要回滚的话,...
  • yen: 刚好需要升级ngin...
  • 文雨: 一些新的method...
  • aliang: 默认不屏蔽估计开发团...
  • 山野愚人居: PHP既然允许直接使...
  • aliang: 最下面有github地址·

其它