nginx集群

Nginx 反向代理与负载均衡

匆匆过客 提交于 2019-12-01 09:38:02
转载来自于 https://mp.weixin.qq.com/s/xLOS-XNOinkptKRBJN8gXg 什么是反向代理与负载均衡 什么是反向代理 当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群 这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为 反向代理 什么是负载均衡 公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器 所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况 一句话: nginx会给你分配服务器压力小的去访问 Nginx反向代理与负载均衡的实现 用户访问网站的时候首先会访问nginx服务器,然后nginx服务器再从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器 nginx配置 下面修改配置方面我就从mac系统下来进行简单的演示,如何安装的话也暂以mac为主了,windows系统直接去Nginx官网下载安装即可 安装nginx 1-进到homebrew官网,然后复制命令

干货|Kubernetes集群部署
Nginx-ingress Controller

筅森魡賤 提交于 2019-12-01 08:29:05
Kubernetes提供了两种内建的云端负载均衡机制用于发布公共应用,一种是工作于传输层的Service资源,它实现的是TCP负载均衡器;另一种是Ingress资源,它实现的是HTTP(S)负载均衡器。 今天我们来重点讨论Ingress资源。HTTP(S)负载均衡器是应用层负载均衡机制的一种,支持根据环境做出更好的调度决策。与传输层调度器相比,它提供了可自定义URL映射和TLS等功能,并支持多种健康状态检查机制。 Ingress是Kubernetes API的标准资源类型之一,它其实就是一组基于DNS名称或URL路径把请求转发至指定的Service资源的规则,用于将集群外部的请求流量转发至集群内部完成服务发布。然而,Ingress资源自身并不能进行“流量穿透”,它仅是一组路由规则的集合,这些规则要想真正发挥作用还需要其他功能的辅助,如监听某套接字,然后根据这些规则的匹配机制路由请求流量。这种能够为Ingress资源监听套接字并转发流量的组件称为Ingress Controller。 一、部署Helm Helm是一个包管理工具, 把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,方便将其chart保存到chart仓库用来存储和分享, Helm支持发布应用配置的版本管理, 使发布可配置,

Nginx

吃可爱长大的小学妹 提交于 2019-12-01 07:14:56
一、Nginx 1、简介 1、通常作为反向代理 2、作用:集群(单节点风险,提高并发)      反向代理(不暴露真实IP),也即http服务器      虚拟服务器      静态服务器 3、优势:性能高,占内存小,轻量级服务器,能同时支持5w并发 4、安全架构方案:   3.1 反向代理(不暴露真实IP)   3.2 使用HTTPS,防止抓包分析   3.3 搭建企业黑、白名单系统   3.4 防模拟请求(csrf),XSS,sql注入,ddos(流量攻击),防盗链 5、反向代理服务器:Nginx、lvs、F5(硬件)、haproxy 6、跨域方案:使用nginx搭建企业级api接口网关 2、Nignx安装 1、简介 1、目录:conf-配置文件目录,html-静态文件目录 3、Nginx反向代理服务器 1、负载均衡策略   权重、轮询、IP绑定 2、集群产生问题:   2.1 分布式任务幂等问题(使用分布式任务调度平台)   2.2 session共享   2.3 分布式全部ID 3、使用nginx搭建集群 1、概念:   集群:减轻单台服务器压力   分布式:将一个项目拆分成n个子项目,分布式开发。 2、集群配置: 1、反向代理配置:   1.1 单个服务反向代理:     server {       listen 80;       server_name www.dy

Linux面试题

蓝咒 提交于 2019-12-01 07:04:02
1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的? 游戏运营要做的一个事情除了协调工作以外 还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划 3、现在给你三百台服务器,你怎么对他们进行管理? 管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录,便于安全与登录的考量。 2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。 3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录

对单机架构升级集群架构的工作记录

一笑奈何 提交于 2019-12-01 06:47:29
概述 还有公司敢用单机模式架构,狠狠的擦了一把汗。。在此萌生了改造单机架构模式,自行网上搜索出一套适合公司的高可用架构,才大致了解完毕。领导就召集大家说了现有单机模式的弊端。。 领导是火眼金睛吗? 好吧,该我低调的卖弄了。。 现有架构 就问你们看到可不可怕(因为DB已经做了集群,此处就没画出来)。。。 任何一个节点挂掉,整个生产线就挂了,下面一一道来为什么那么说: 1. Nginx单点架构,一旦当前nginx挂掉,将致使外部用户无法使用访问应用 2. Tomcat:service-mix采用的1:1 访问,容易导致tomcat可以正常访问但下游服务挂掉,应用仍然请求到当前tomcat,但是无法提供服务 3. Redis单点使用,某一台挂掉,就会导致相应功能失效 架构优化 整体解析: keepalived和nginx放在同一台机器中,用于完成vip漂移 nginx采用的主备,备机使用的虚线连接,当主机挂掉了,备机对应的虚线才会生效 架构设计自下而上方案解析: 1. 将现有session共享和业务两个Redis实例合二为一,redis采用主从集群模式。 2. Servicemix采用集群方案,tomcat请求nginx,nginx对servicemix进行请求分发。 3. Tomcat请求keepalived VIP,路由到nginx,完成对servicemix的请求 4.

Nginx反向代理与负载均衡

倾然丶 夕夏残阳落幕 提交于 2019-12-01 05:36:28
最近在做需求的时候,有时候会和别的三方系统交互,如调用一个第三方系统的http接口查询商品物流信息,获得响应数据返回给我们自己系统的前端页面进行展示,整个流程会遇到什么样的问题呢,现在整理一下。 代理 大家都知道,我们平时开发,都是在公司的内网(局域网)中,即不能与外网(互联网)交互,也就是不能上网,所以要想使开发机或服务器能够访问外网,就不得不通过代理服务器转发请求了。这里自然而然的就想到了使用Nginx做代理了,那什么是代理呢?我们就先了解一下代理的基本概念吧。 代理一词被我们在生活中所熟知,印象中的“代理”指的是以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。这是百度百科解释的代理一词的意思。通俗点说就是“代别人处理”,举个生活中常见的例子,你去办车检,需要排队办理,也有很多表格要填,还要等待很久,办下来差不多要一天。有些人嫌麻烦,浪费时间,不愿意干,这个时候“代理车检”这一职业就诞生了。你授权代理人帮你处理一些列繁琐的事情,并支付一定的费用,你只需要关心结果,有没有办成功,其他的你不需要关心。这样,你就从这一事务中脱离出来,交给专业的人去做。代理人执行的这一动作就叫做代理。 同样,回到互联网行业,代理一词同样适用。只不过这里的代理人和被代理人都是计算机,即计算机1要访问A站点,但是计算机1到A站点的网络不通,而计算机2到站点A的网络畅通

暂时lvs

喜欢而已 提交于 2019-12-01 05:08:14
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 二、LVS的基本工作原理 1.

负载均衡

白昼怎懂夜的黑 提交于 2019-12-01 05:05:45
1 学习目标 掌握什么是负载均衡及负载均衡的作用和意义。 了解lvs负载均衡的三种模式。 了解lvs-DR负载均衡部署方法。 掌握nginx实现负载均衡的方法。 掌握lvs+nginx负载均衡拓扑结构。 2 负载均衡方案 2.1 什么是负载均衡 一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求按照某种策略分配到服务器集合的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡解决了大量并发访问服务问题,其目的就是用最少的投资获得接近于大型主机的性能。 2.2 相关技术 2.2.1 基于DNS的负载均衡 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

Kubernetes——命令行操作

爷,独闯天下 提交于 2019-12-01 04:55:58
如果集群初始化失败需要的操作: master:   kubeadm reset #回答y   执行一条它提示给你的iptables命令即可 node:    systemctl stop kubelet   rm -rf /etc/kubernetes/*   注意:检查防火墙、swap分区、内存 kubernetes使用 运行pod的两种方式:命令行、yaml文件 控制器:deploy rs ds sts job cj(简写) 命令行操作deploy: kubectl delete deploy httpd #删除要指定资源类型,这里的资源类型是deploy kubectl delete deploy nginx kubectl get po kubectl run nginx --image=nginx -r 2 kubectl run nginx --image=nginx --replicas=2 kubectl get po kubectl get deploy #deploy管理多副本,但是不是直接管理,而是通过rs管理多副本。 kubectl get deploy kubectl describe deploy nginx #能够发现的是replicaset的名称是deployment的name上加上一串随机字符串

Kubernetes上的负载均衡详解

。_饼干妹妹 提交于 2019-11-30 23:44:57
如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于“服务器繁忙!”的情况。这一诉求的典型解决方案是横向扩展部署,以便有多个应用程序容器可以为用户请求提供服务。但是,这种技术需要可靠的路由功能,需要可以有效地在多个服务器之间分配流量。本文分享的内容就是要解决负载均衡解决方案的问题。 Rancher 1.6是Docker和Kubernetes的容器编排平台,为负载均衡提供了功能丰富的支持。在Rancher 1.6中,用户可以通过使用开箱即用的HAProxy负载均衡器,来提供基于HTTP / HTTPS / TCP主机名/路径的路由。 而在本文中,我们将探讨如何在原生使用Kubernetes进行编排的Rancher 2.0平台上实现这些流行的负载均衡技术。 Rancher 2.0 负载均衡功能 通过Rancher 2.0,用户可以开箱即用地使用由NGINX Ingress Controller支持的原生Kubernetes Ingress功能进行7层负载均衡。因为Kubernetes Ingress仅支持HTTP和HTTPS协议,所以目前如果您使用的是Ingress支持,那么负载均衡仅限于上述这两种协议。 对于TCP协议,Rancher 2.0支持在部署Kubernetes集群的云上配置第4层TCP负载均衡器