重庆优化网站,成熟短视频源码大全,网站开发中标签栏的图标一般都在那个文件中写代码,网站建设备案优化设一、概述 HAProxy是一个免费的负载均衡软件#xff0c;可以运行于大部分主流的Linux操作系统上#xff08;CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS#xff09;。 HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力#xff0c;具备丰富的功能。HAProxy具…一、概述 HAProxy是一个免费的负载均衡软件可以运行于大部分主流的Linux操作系统上CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS。 HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。
核心功能 负载均衡L4和L7两种模式支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法 健康检查支持TCP和HTTP两种健康检查模式 会话保持对于未实现会话共享的应用集群可通过Insert Cookie/Rewrite Cookie/Prefix Cookie以及上述的多种Hash方式实现会话保持 SSLHAProxy可以解析HTTPS协议并能够将请求解密为HTTP后向后端传输 HTTP请求重写与重定向 监控与统计HAProxy提供了基于Web的统计信息页面展现健康状态和流量数据。基于此功能使用者可以开发监控程序来监控HAProxy的状态
关键特性 采用单线程、事件驱动、非阻塞模型减少上下文切换的消耗能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。 大量精细的性能优化如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等这些技术使得HAProxy在中等负载下只占用极低的CPU资源。 HAProxy大量利用操作系统本身的功能特性使得其在处理请求时能发挥极高的性能通常情况下HAProxy自身只占用15%的处理时间剩余的85%都是在系统内核层完成的。 HAProxy作者在8年前2009年使用1.4版本进行了一次测试单个HAProxy进程的处理能力突破了10万请求/秒并轻松占满了10Gbps的网络带宽。
应用场景 高并发要求较高的场合下
二、安装
一、环境内核配置
可有可无(vim /etc/sysctl.conf) net.ipv4.tcp_tw_reuse 1 net.ipv4.ip_local_port_range 1024 65023 net.ipv4.tcp_max_syn_backlog 10240 net.ipv4.tcp_max_tw_buckets 400000 net.ipv4.tcp_max_orphans 60000 net.ipv4.tcp_synack_retries 3 net.core.somaxconn 10000 二、编译安装 wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz cd /haproxy-1.7.2/ make PREFIX/usr/local/haproxy TARGETlinux2628 make install PREFIX/usr/local/haproxy 三、建立配置文件 从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路“/etc/haproxy/haproxy.cfg” mkdir /etc/haproxy touch /etc/haproxy/haproxy.cfg 添加系统服务 vim /etc/init.d/haproxy chmod x /etc/init.d/haproxyd chkconfig --add /etc/init.d/haproxy 添加3和5运行级别下自启动 chkconfig haproxy --level 35 on chkconfig --list 配置文件 三、 启动haproxy service haproxy start service haproxy stop service haproxy restart | reload systemctl daemon-reload 也可以使用systemctl 启动 配置web
安装epel-release yum install -y epel-release
安装nginx yum install -y nginx
修改配置文件 并启动 echo nginx1 /usr/share/nginx/html/index.html (web1) echo nginx2 /usr/share/nginx/html/index.html (web1) systemctl start nginx 四、调度算法 roundrobin表示简单的轮询。 static-rr表示根据权重。 leastconn表示最少连接者先处理。 source表示根据请求的源 IP类似 Nginx 的 IP_hash 机制。 ri表示根据请求的 URI。 rl_param表示根据 HTTP 请求头来锁定每一次 HTTP 请求。 rdp-cookie(name)表示根据据 cookie(name)来锁定并哈希每一次 TCP 请求。
五、负载均衡
一、七层负载
配置负载 global daemon maxconn 256 pidfile /var/run/haproxy/haproxy.pid defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:8080 default_backend servers backend servers server server1 127.0.0.1:8000 maxconn 32 server server2 127.0.0.1:8090 maxconn 32 配置监控页面 listen stats #定义监控页面 bind *:1080 #绑定端口1080 stats refresh 30s #每30秒更新监控数据 stats uri /stats #访问监控页面的uri stats realm HAProxy\ Stats #监控页面的认证提示 stats auth admin:admin #监控页面的用户名和密码 二、四层负载
配置负载 global daemon maxconn 256 pidfile /var/run/haproxy/haproxy.pid defaults mode tcp timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:8080 default_backend servers backend servers balance roundrobin #轮询 #balance source #保持会话 server server1 127.0.0.1:8000 maxconn 32 server server2 127.0.0.1:8090 maxconn 32 六、keepalivedhaproxy高可用
haproxy配置
需要两台haproxy 配置内容一致 global daemon maxconn 256 pidfile /var/run/haproxy/haproxy.pid defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:80 default_backend servers backend servers server server1 192.168.115.128:80 maxconn 32 server server2 192.168.115.131:80 maxconn 32 配置keepalived
yum install -y keepalived
vim /etc/keepalived/keepalived.conf global_defs { router_id LVS_DEVEL } #HAProxy健康检查配置 vrrp_script chk_haproxy { script killall -0 haproxy #使用killall -0检查haproxy实例是否存在性能高于ps命令 interval 2 #脚本运行周期 weight 2 #每次检查的加权权重值 } vrrp_instance HA_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.115.200 } track_script { chk_haproxy #对应的健康检查配置 } } 测试 虚拟ip监控页面