nginx 熟悉的来,求教个问题
问题
我想统计不同域名的下行流量,TCP 协议
尝试方法:
-
从 log 中读取 我本来想输出 log,然后从 log 中读取 $bytes_sent,但是 log 中似乎无法打印出来域名,所以无法区分不同域名的流量。
-
配置多个 server,一个域名配置一个,但是会报错,说存在相同的 IP:PORT,因为域名都是指向同个 IP

我想统计不同域名的下行流量,TCP 协议
从 log 中读取 我本来想输出 log,然后从 log 中读取 $bytes_sent,但是 log 中似乎无法打印出来域名,所以无法区分不同域名的流量。
配置多个 server,一个域名配置一个,但是会报错,说存在相同的 IP:PORT,因为域名都是指向同个 IP 
纯粹的 TCP 通信,只有 IP 端口,没有域名,也就无从谈起根据域名统计。
HTTP 协议虽然基于 TCP 连接,但是它是自己发送了 host 字段,所以能够被识别域名(确切来说是 HTTP1.1 )
纯粹的 TCP 连接,靠 IP 端口建立连接,发内容就完了,并没有标记域名。
log_format main ‘$host: $bytes_sent’;
server {
listen 80;
server_name a.example.com;
access_log /var/log/nginx/a.example.com.access.log main;
}
server {
listen 80;
server_name b.example.com;
access_log /var/log/nginx/b.example.com.access.log main;
}
}
“`
这个配置应该可以做到分别统计不同域名的流量把
已经强调是纯 TCP 流量了,还这么多人进坑的嘛…… 另外回复一下问题:
我觉得不行,一个端口,TCP 不能判断域名。
@also24 这个回复应该是正解。