nginx集群

了解Nginx

﹥>﹥吖頭↗ 提交于 2020-03-07 01:40:57
Nginx同Apache一样都是一种Web服务器. 基于REST架构风格, 以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据, 通过HTTP协议提供各种网络服务 这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个 Web 服务器有着各自鲜明的特点 Apache 的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等,它不支持高并发的服务器。在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存, 操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源,导致 HTTP 请求的平均响应速度降低, 这些都决定了 Apache 不可能成为高性能 Web 服务器,轻量级高并发服务器 Nginx 就应运而生了 俄罗斯的工程师 Igor Sysoev,他在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx, Nginx 作为 Web 服务器一直为 Rambler Media 提供出色而又稳定的服务. Igor Sysoev 将 Nginx 代码开源,并且赋予自由软件许可证 Nginx 是一款自由的、开源的、高性能的

Kubernetes Ingress API 对象

可紊 提交于 2020-03-05 23:53:32
Ingress 它是什么 如何暴露您Kubernetes集群内部 "应用服务" 并向外(互联网)提供访问服务!!! 通常情况下集群内部Service和Pod仅可在集群内部网络中通过IP地址访问。所有到达边界路由器的流量或被丢弃或被转发到其它地方。( Ingress 的存在即是完成以上之目的) 不直接使用Ingress资源,也可有多种方法暴露Service。 使用 Service.Type=LoadBalancer 使用 Service.Type=NodePort 有几个是废弃的 未定义Ingress的情况下,外部请求访问内部服务时可能这样 Internet ---------> Service 定义Ingress授权请求服务入站连接到达集群的规访问则可能这样 Internet ------> Ingress ------> Service Ingress 它能做什么 可以将 Ingress 配置为提供服务外部可访问的 URL、负载均衡流量、终止 SSL / TLS 并提供基于名称的虚拟主机。Ingress 控制器通常负责通过负载均衡器来实现 Ingress,尽管它也可以配置边缘路由器或其他前端来帮助处理流量。 Ingress 不会公开任意端口或协议 。 将 HTTP 和 HTTPS 以外的服务公开到 Internet 时,通常使用 Service.Type=NodePort 或者

使用kubeadm部署k8s集群08-配置LB指向kube-apiserver

孤街浪徒 提交于 2020-03-05 23:33:42
使用kubeadm部署k8s集群08-配置LB指向kube-apiserver 2018/1/4 配置 LB 指向 kube-apiserver 小目标:在 3 个 master 节点前,还需配置一个 LB 来作为 apiserver 的入口 LB -> master x3 直接使用阿里云内网 SLB L4 proxy 资源(本次实例是 4 层而不使用 7 层的原因是:跳过了处理证书的环节) 申请下来资源后,将得到一个 vip 指向上述 3 个 master 节点的 IP 作为后端真实服务器 注意:做网络联通性测试时,不要在上述 3 个 master 节点上测试 vip 是否可用,因为这和负载均衡TCP的实现机制有关 利用 haproxy/nginx 来自建 LB(测试通过,但建议使用阿里云到基础组件,不要自己维护) 直接使用阿里云内网 SLB L4 proxy 资源 ### 申请的 SLB 资源 SLB instance id: lb-xxx, vip: 10.10.9.76 ### 网络联通性测试 [root@tvm-04 ~]# for i in $(seq 1 10);do echo "------------$i";curl -k -If -m 3 https://10.10.9.76:6443;done ------------1 curl: (22) NSS:

FastDFS 集群部署

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-05 12:22:07
服务器规划: VIP :10.100.139.129 跟踪服务器 1 【主机】( Tracker Server ): 10.100.139.121 跟踪服务器 2 【 备 机】( Tracker Server ): 10.100.138.180 存储服务器 1 ( Storage Server ): 10.100.139.121 存储服务器 2 ( Storage Server ): 10.100.138.180 存储服务器 3 ( Storage Server ): 10.100.138.153 操作系统: CentOS7 用户: root 数据存储目录: 应用 安装目录 Nginx /opt/nginx Fastdfs /usr/bin Keepalived /usr/local 安装包 /home/yxgly/resources è /usr/local/src Tracker_data /fastdfs/tracker Storage_data /fastdfs/storage 安装包: FastDFS_v5.08.tar.gz : FastDFS 源码 libfastcommon-master.zip :(从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库) fastdfs-nginx-module-master.zip : storage 节点

LVS+keepalived-DR模式

柔情痞子 提交于 2020-03-05 06:40:55
下面一张图 其实就是企业的集群架构图 结合前面的技术加上今天的lvs+keepalived负载均衡 nginxde 技术就可以搭建出来 前面的实验累积一起就是这张图 只不过她的 web 服务器比我们实验的机器要多 其实理论是一样的 那么结合以前的实验 今天咱们可以做一个完整的网络图 集群图大概上这样的 , 但是条件有限 我这里就开 3 台机器 其实还要加一台 lvs 从,防止主挂机可以切到从上面, vs 从就不做了,后面会给大家一些配置文件,其实从和主一样,就是 keepalived 的优先级不一样,下面有 lvs 从的配置文件 安装和主一样. 实验环境: (环境大家可以参照其它笔记搭建) 192.168.1.120 lvs+keepalived 负载 nginx 服务器(主) 192.168.1.116 nginx 负载均衡服务器 192.168.1.118 nginx 负载均衡服务器 192.168.1.117 lap+tomcat1+tomcat2 WEB 服务器 (一般每台 web 服务器只配一个网站 tomcat 可以配置多个) 192.168.1.18 mysql 主也是 keepalived 主 (这里我们用5台就可以演示出来 当然你的机器好的话 也可以把咱们前面两台数据库和两台 web 服务器都可以开起来 也可以在配置一台 lvs 从,这样效果更明显)

linux集群架构

时光怂恿深爱的人放手 提交于 2020-03-05 06:39:04
Linux集群架构 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat、keepalived 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有 LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler keepalived介绍 在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果 keepalived通过VRRP(Virtual Router Redundancy Protocl)来实现高可用。 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。 master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。 Keepalived要有三个模块,分别是core、check和vrrp

Kubernetes系列之Kubernetes使用ingress-nginx作为反向代理

六眼飞鱼酱① 提交于 2020-03-05 00:52:29
Kubernetes系列之Kubernetes使用ingress-nginx作为反向代理 #一、Ingress简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案: NodePort LoadBalancer Ingress ###1、Ingress组成 ingress controller   将新加入的Ingress转化成Nginx的配置文件并使之生效 ingress服务   将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可 ###2、Ingress工作原理 1.ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化, 2.然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置, 3.再写到nginx-ingress-control的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中, 4.然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。 ###3

Nginx的安装与配置

天大地大妈咪最大 提交于 2020-03-04 21:53:24
Nginx简介 Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。 正向代理 如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们 正向代理的用途: (1)访问原来无法访问的资源,如Google (2) 可以做缓存,加速访问资源 (3)对客户端访问授权,上网进行认证 (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 反向代理 所有客户端发出的请求全部经过Nginx反向代理服务器,再转发给真正的服务器。 逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。 ip_hash

2018年3月29日 11:02:33 关于docker分享之分布式存储 glusterfs

流过昼夜 提交于 2020-03-04 19:13:16
2018年3月29日 11:02:33 关于docker分享之分布式存储 glusterfs 经典语录: 实际实验搭建: 前提 是要保证 一个 /data目录不和根分区在同一个磁盘! 1、centos7安装glusterfs 参考链接: https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart #To Use the RPMs from Storage SIG, you need to install the centos-release-gluster RPM as it will provide the required YUM repository files. This RPM is available from CentOS Extras. yum install centos-release-gluster -y yum --enablerepo=centos-gluster*-test install glusterfs-server -y systemctl enable glusterd systemctl start glusterd systemctl status glusterd 2、组建集群(配置信任存储池): #从glusterfs官网跳转过来的 [root

k8s+docker部署jenkins+gitlab实现CICD项目实战

試著忘記壹切 提交于 2020-03-04 17:01:18
CICD核心概念 CICD是持续集成(continuous integration,CI),持续交付(continuous delivery,CD),持续部署(continuous Deployment,CD)的简称。 指在开发过程中自动执行一系列脚本来减低开发引入bug的概率,在新代码从开发到部署的过程中,尽量减少人工的介入。 1,持续集成 持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处有两个: 1)快速发现错误:每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 2)防止分支大幅偏离主干:如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。 持续集成的目的: 让产品可以快速迭代同时还能保持高质量,它的核心措施是:代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。 Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正。" 2, 持续交付 持续交付指的是频繁的将软件的新版本交付给质量团队或用户,以供评审,如果评审通过,代码就进入生产阶段。 持续交付可以看作是持续集成的下一步,强调的是,不管怎样更新,软件是随时随地可以交付的。 3,持续部署 持续部署是持续交付的下一步,指的是代码通过评审之后,自动部署到生产环境。 持续部署的目标是:代码在任何时候都是可以部署的