一. 连接的创建到断开
1. timeout
1) mysql 的 timeout
connect_timeout
发生在三次握手阶段的超时,场景是,服务器端等待来自客户端的 ack 包超时。
官:"mysqld服务器用Bad handshake响应前等待连接包的秒数"
interactive_timeout
服务器断开交互式连接之前等待活动的秒数。交互式连接例如在命令行创建的连接。
wait_timeout
服务器断开非交互式连接之前等待活动的秒数。
net_read_timeout / net_write_timeout
当服务器从客户端读时,net_read_timeout 控制何时中断;当服务器向客户端写时,net_write_timeout 控制何时中断。
2) apache 的 timeout
httpd.conf
timeout 10
设置为10秒表示,如果超过 10 秒下一个 tcp 包还没有到来,那么连接释放,可以防止 apache 慢攻击。当然,如果每隔不到 10 秒发送一个垃圾包糊弄 apache , 那么, 当LimitRequestFieldSize 超时之后,连接释放,防慢攻击。参考 http://blog.chinaunix.net/uid-20767124-id-3013076.html 。
keepalive on/off
是否打开持久连接
MaxKeepAliveRequests
在一个持久连接中可以接收的http请求的个数。设置为0表示不设限。
KeepAliveTimeout
在一个持久连接中,如果超过一定时间下一个请求还没有到来,则断开连接。