首页 > 代码库 > 企业运维故障案例

企业运维故障案例

NGINX

可以作为反向代理服务器,还可以按照调度规则实现动静分离,可以按照轮询、ip_hash、URL——hash、权重等多种方式对后端服务器做负载均衡,还支持后端服务器的健康检查。

用upstream均衡,均衡的时候有很多算法

upstream yinxingyouyou_web {

    ip_hash

    server 192.168.1.100 weight=1 max_fails=2 fail_timeout=10s;

    server 192.168.1.101 weight=1 max_fails=2 fail_timeout=10s;

}

ip_hash是保持会话登录不变,但是不能保证平均均衡,而这个会话是保存在redis里的,加在数据库前面的一层缓存

nginx+tomcat+redis+mysql-AB tomcat连redis,redis连tomcat有驱动,开发会写好

·upstream的 fail_timeout和max_fails,用来判断负载均衡upstream中的某个server是否失效。在fail_timeout的时间内,nignx与upstream中某个server的连接尝试失败了max_fails次,则nginx会认为该server已经失效。在接下来的 fail_timeout时间内(不宜太短,网络有延迟),nginx不再将请求分发给失效的server。

·如果max_fails=0,即关闭后端服务器健康检查,如果权重一样,那么每次请求都会有机会发到后端不可用的服务器。

·proxy_connect_timeout nginx与后端连接的超时时间,单位为秒,默认为60秒。我们在nginx错误日志里面看到的(110: Connection timed out),就是指nginx与后端连接已经超时。报502错误。

·proxy_read_timeout 建立连接后,nginx等候读取后端服务器响应的时间,默认为60秒。在一些比较繁忙的后端,比如线程数经常达到峰值了的tomcat,这个值注意不要设得太低,虽然线程数已经用光,但请求已经进入待队列之中。

·proxy_send_timeout nginx转发请求到后端的超时时间,默认为60秒,在这段时间内nginx没将请求数据发到后端将关闭连接。这个在网站有比较多像提交表单(post)上传内容之类的需要留意一下.


·keepalive_timout 时间值意味着:一个http产生的tcp连接在传送完最后一个响应后,还需要等待keepalive_timeout秒后,才开始关闭这个连接。就是会话保持。


·关闭atimevim /etc/fstab里

在根后面的defaults,后面加noatime,再后面1 1,是开始的时候检查磁盘,写成0就是不质检磁盘

关闭系统日志,系统日志warm,debug,info,error,2万台机器,ELK日志搜集平台

企业运维故障案例