我有一个Web应用程序环境如下:
Apache web server(172.17.0.82) -> HAProxy -> |-"php-fpm-1" App server
-> |-"php-fpm-2" App server
请求到达Apache服务器,然后传递给HAProxy,然后HAProxy将它们传递给基于Roundrobin时尚的两个php应用服务器。
我希望这个网络应用程序以这种方式构建。 rsyslog已启用,它开始从haproxy接收日志条目以登录/var/log/haproxy.log。
我的问题:
如何配置HAProxy,以便每个请求都有两个时间戳: 1)第一个是HAProxy收到从Apache服务器转发的传入请求的时间。 2)第二个时间戳是当一个php App服务器请求完成处理并发送回HAProxy以转发到Apache服务器时。
是否可以在haproxy.log中的单个记录中包含这两个时间戳?
谢谢大家。
这是我的haproxy配置文件:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
user haproxy
group haproxy
daemon
defaults
mode tcp
option tcplog
#option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http-in
mode tcp
option tcplog
bind 0.0.0.0:9000
log global
#which backend
default_backend php_appservers
backend php_appservers
mode tcp
option tcplog
balance roundrobin
server php-fpm-1 172.17.0.125:9000 weight 5 check slowstart 5000ms
server php-fpm-2 172.17.0.126:9000 weight 5 check slowstart 5000ms
当我检查haproxy.log时,它看起来像:
May 7 08:28:00 localhost haproxy[4884]: 172.17.0.82:53369 [07/May/2015:08:28:00.287] http-in php_appservers/php-fpm-2 1/0/9 92320 -- 0/0/0/0/0 0/0
May 7 08:28:01 localhost haproxy[4884]: 172.17.0.82:53373 [07/May/2015:08:28:01.683] http-in php_appservers/php-fpm-1 1/0/4 92344 -- 0/0/0/0/0 0/0
May 7 08:28:02 localhost haproxy[4884]: 172.17.0.82:53376 [07/May/2015:08:28:02.514] http-in php_appservers/php-fpm-2 1/0/4 92320 -- 0/0/0/0/0 0/0
May 7 08:28:04 localhost haproxy[4884]: 172.17.0.82:53380 [07/May/2015:08:28:04.808] http-in php_appservers/php-fpm-1 1/0/8 92344 -- 0/0/0/0/0 0/0
May 7 08:28:05 localhost haproxy[4884]: 172.17.0.82:53382 [07/May/2015:08:28:05.247] http-in php_appservers/php-fpm-2 1/0/4 92320 -- 0/0/0/0/0 0/0
May 7 08:28:06 localhost haproxy[4884]: 172.17.0.82:53386 [07/May/2015:08:28:06.754] http-in php_appservers/php-fpm-1 1/0/4 92344 -- 0/0/0/0/0 0/0
答案 0 :(得分:0)
尝试在HAproxy日志中使用%U,上游响应时间和%Tr,上游连接时间。这些应该为您提供后端服务器添加的延迟。