HAproxy

http反向代理及haproxy

試著忘記壹切 提交于 2019-11-28 22:32:25
一、URI <1>什么是URI URI,通一资源标志符(Universal Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。 <2>URI的结构组成 URI通常由三部分组成: ①访问资源的命名机制; ②存放资源的主机名; ③资源自身的名称。 <3>URI举例 如: https://blog.csdn.net/qq_32595453/article/details/79516787 我们可以这样解释它: ①这是一个可以通过https协议访问的资源, ②位于主机 blog.csdn.net上, ③通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径) 二、URL URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。 通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。 采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。 URL的一般格式为(带方括号[]的为可选项): protocol :// hostname[:port] / path / [

Kubernetes 实战 快速搭建kubernetes 高可用集群

懵懂的女人 提交于 2019-11-28 19:32:41
概述 教你快速搭建 生产环境下的 kubernetes 高可用集群。 本文通过 HAProxy + Keepalived 实现。 Keepalived: 提供对外服务的虚拟IP(VIP) 是一主多备运行模式,故至少需要两个 LB 节点。在运行过程中周期检查本机的 HAProxy 进程状态,如果检测到 HAProxy 进程异常,则触发重新选主的过程,VIP 将飘移到新选出来的主节点,从而实现 VIP 的高可用。 HAProxy: 监听 Keepalived VIP,运行 Keepalived 和 HAProxy 的节点称为 LB(负载均衡)节点。 节点配置 主机名 ip 系统 角色 磁盘 CPU/MEM master1.k8s.com 192.168.8.181 Centos7.6 master 40G 4核/4G master2.k8s.com 192.168.8.182 Centos7.6 master 40G 4核/4G master3.k8s.com 192.168.8.183 Centos7.6 master 40G 4核/4G node1.k8s.com 192.168.8.191 Centos7.6 node 40G 4核/4G node2.k8s.com 192.168.8.192 Centos7.6 node 40G 4核/4G VIP 192.168.8.10 –

服务器集群之keepalived配置高可用(资料)

心不动则不痛 提交于 2019-11-28 19:10:27
Linux集群概述 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开源软件有:heartbeat、keepalived • 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2台 • 负载均衡器(Load Balancer, LB )是 一组能够将IP数据流以负载均衡形式转发到多台物理服务器的集成软件 。有 硬件负载均衡器和软件负载均衡器 之分,硬件负载均衡器主要是在访问网络和服务器之间配置物理负载均衡设备,客户端对物理服务器的访问请求首先会抵达负载均衡设备,然后再由负载均衡设备根据一定的负载算法转发到后端服务器。相比而言,软件负载均衡器不需要特定的物理设备, 只需在相应的操作系统上部署具有负载均衡功能的软件即可。 • 在Opens tack高可用集群部署中 ,服务的负载均衡和高可用主要有两种主流的实现方案,即 HAProxy+ Keepalived和Pacemaker+HAProxy方案 。由于OpenStack服务组件多样,不同服务均需要进行特定的高可用设计,并且从集群资源统一调度和集群稳定性的角度考虑

haproxy的丰富特性简介

烈酒焚心 提交于 2019-11-28 17:36:05
HaProxy系列文章: http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.简介 官方站点: http://www.haproxy.org haproxy是一款负载均衡软件,它工作在7层模型上,可以分析数据包中的应用层协议,并按规则进行负载。通常这类7层负载工具也称为反向代理软件,nginx是另一款著名的反向代理软件。 haproxy支持使用splice()系统调用,它可以将数据在两个套接字之间在内核空间直接使用管道进行传递,无需再在 kernel buffer-->app buffer-->kernel 之间来回复制数据,实现 零复制转发 (Zero-copy forwarding),还可以实现零复制启动(zero-starting)。haproxy默认对客户端的请求和对服务端的响应数据都开启了splice功能,它自身对数据状态进行判断,决定此数据是否启用splice()进行管道传递,这能极大提高性能。 2.haproxy的特性(1):连接保持和连接关闭 先说明说明HTTP协议事务模型。 http协议是事务驱动的,意味着每个request产生且仅产生一个response。客户端发送请求时,将建立一个从客户端到服务端的TCP连接,客户端发送的每一个request都经过此连接传送给服务端,然后服务端发出response报文

Enable http2 with Tomcat in Spring Boot

对着背影说爱祢 提交于 2019-11-28 16:22:39
Tomcat 8.5 , which will be the default in Spring Boot 1.4 , (to be released tomorrow) supports http2 . How can http2 be enabled in a Spring Boot application? You need to add the HTTP 2 upgrade protocol to Tomcat's connector. You can do that by customizing the embedded Tomcat container: Java 8: @Bean public EmbeddedServletContainerCustomizer tomcatCustomizer() { return (container) -> { if (container instanceof TomcatEmbeddedServletContainerFactory) { ((TomcatEmbeddedServletContainerFactory) container) .addConnectorCustomizers((connector) -> { connector.addUpgradeProtocol(new Http2Protocol()); }

HAProxy redirecting http to https (ssl)

佐手、 提交于 2019-11-28 15:14:38
问题 I'm using HAProxy for load balancing and only want my site to support https. Thus, I'd like to redirect all requests on port 80 to port 443. How would I do this? Edit: We'd like to redirect to the same url on https, preserving query params. Thus, http://foo.com/bar would redirect to https://foo.com/bar 回答1: I found this to be the biggest help: Use HAProxy 1.5 or newer, and simply add the following line to the frontend config: redirect scheme https code 301 if !{ ssl_fc } 回答2: I don't have

haproxy

孤街醉人 提交于 2019-11-28 13:05:20
原文引用 https://www.dazhuanlan.com/2019/08/25/5d623ce39fb2a/ socat 测试下来,socat要比haproxy稳定,速度快,推荐使用 nohup socat -T 600 TCP4-LISTEN:1883,reuseaddr,fork TCP4:54.223.43.113:1883 >> socat1883.log 2>&1 & deprecated under here haproxy yum install -y haproxy # vi /etc/haproxy/haproxy.cfg global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the

Linux运维精华常见基础面试题

痞子三分冷 提交于 2019-11-28 11:20:24
尽管运维是做的最苦最累的活,最容易背锅的一个岗位,大家还是应该在工作中不断提高自己。 下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家跳槽找个高薪好工作。 1、你理解的运维是什么,什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营的人员是做什么工作的? 游戏运营要做的一个事情除了协调工作以外 还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划 3、现在给你二三百台服务器,你怎么对他们进行管理? 管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录

HAProxy简介

一曲冷凌霜 提交于 2019-11-28 08:32:03
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三方应用实现的软负载 HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应(response)指定内容来控制协议,这种操作要基于特定规则 Haproxy优点 免费开源,稳定性也是非常好,单Haproxy也跑得不错,稳定性可以与LVS相媲美; 根据官方文档,HAProxy可以跑满10Gbps网络带宽,这个作为软件级负载均衡,也是比较惊人的; HAProxy可以作为MySQL、邮件或其它的非web的负载均衡,我们常用于它作为MySQL(读)负载均衡; 自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警; HAProxy支持虚拟主机 HAProxy也可以作为反向代理服务器 来源: https://blog.csdn.net/xuanyuanjiaqi/article

Haproxy route and rewrite based on URI path

风流意气都作罢 提交于 2019-11-28 08:28:50
I am trying to setup an Haproxy to load balance requests on a few backends identified by the uri path. For example: https://www.example.com/v1/catalog/foo/bar Should lead to the "catalog-v1" backends. Thing is each app responds on a different path so I must not only identify the app but rewrite the URL path. E.g. https://www.example.com/v1/catalog/product https://www.example.com/v2-2/checkout/cart/123 https://www.example.com/v3.1.2/checkout/cart TO https://www.example.com/catalog-v1/product https://www.example.com/checkout-v2-2/cart/123 https://www.example.com/checkout-v3.1.2/cart I know I