it-swarm.cn

如何监视传入的HTTP请求

如何监视到端口80HTTP个传入请求?我已经在本地计算机上使用DynDNSNginx设置了Web托管。 我想知道每天服务器上有多少个请求。

目前,我正在使用以下命令:

netstat -an | grep 80
32
user7044

您可以使用tcpdump

# tcpdump filter for HTTP GET 
Sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
Sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

有关使用tshark的解决方案,请参见:

https://serverfault.com/questions/84750/monitoring-http-traffic-using-tcpdump

44
nad

我一直在使用tcpflow在aws实例中检查传入的请求,也许有一种每天汇总请求的方法。

步骤1-安装

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

步骤2-在端口80跟踪GET/POST请求

# tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

参考

https://github.com/simsong/tcpflow

7
prayagupd

您是否为服务器打开了日志文件?如果这样做,建议您安装AwStats并运行日志文件以获取准确的报告。

如果您只想监视所有传入/传出流量,则可以使用WireShark。

5
djsumdog

您还可以尾随日志文件:

tail -f /path/to/access_log

当新条目写入日志时,-f参数将使tail不断更新屏幕。

4
Dave

运行这个

while true
do
echo -----`date '+%r'` -----:
netstat -ant | grep :8080 | awk '{print $6}' | sort | uniq -c | sort -n
echo httpd processes: [`ps aux | grep httpd | wc -l`]
echo .
sleep 2
done

它将每2秒监控8080端口上的流量

0
vsingh