nginx集群

keepalived之vrrp_script详解

放肆的年华 提交于 2019-12-27 01:27:53
1. Nginx负载均衡高可用   首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用。 Keepalived以VRRP协议为实现基础,用VRRP协议来实现高可用性(HA).VRRP (Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),如下图所示: 这张图的意思是,我们使用keepalived来管理两台设备的Nginx,并虚拟出一个IP,我们现在两台装有Nginx的设备分别是192.168.101.3和192.168.101.4,那么我们可以虚拟出一个192.168.156.xx的IP,外界请求直接访问虚拟IP而不是真正的Nginx,让虚拟IP去访问提供服务的Nginx(注意:高可用是指同一时间提供服务的只有一台设备,提供服务的设备挂掉之后,备份服务器便开始提供服务),然后再由Nginx去访问tomcat。 要实现nginx的高可用,需要实现 备份机 。 我们拿两台虚拟机来搭建nginx高可用环境,这两台设备分别是192.168.101.3(主机名是nginx1)和192.168.101.4

Nginx负载均衡高可用---架构

一曲冷凌霜 提交于 2019-12-27 01:26:16
1. Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用。 Keepalived以VRRP协议为实现基础,用VRRP协议来实现高可用性(HA).VRRP (Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),如下图所示: 这张图的意思是,我们使用keepalived来管理两台设备的Nginx,并虚拟出一个IP,我们现在两台装有Nginx的设备分别是192.168.101.3和192.168.101.4,那么我们可以虚拟出一个192.168.156.xx的IP,外界请求直接访问虚拟IP而不是真正的Nginx,让虚拟IP去访问提供服务的Nginx(注意:高可用是指同一时间提供服务的只有一台设备,提供服务的设备挂掉之后,备份服务器便开始提供服务),然后再由Nginx去访问tomcat。 要实现nginx的高可用,需要实现备份机。 我们拿两台虚拟机来搭建nginx高可用环境,这两台设备分别是192.168.101.3(主机名是nginx1)和192.168.101.4(主机名是nginx2)。

Nginx负载均衡和反向代理

丶灬走出姿态 提交于 2019-12-27 01:15:40
1:反向代理 代理就是中介,那有反向代理就有正向代理,两者的区别是什么嘞? 正向代理隐藏真实客户端,服务端不知道实际发起请求的客户端.,proxy和client同属一个LAN,对server透明; 反向代理隐藏真实服务端,客户端不知道实际提供服务的服务端,proxy和server同属一个LAN,对client透明。 基本配置项   (1)proxy_pass 将当前请求反向代理到URL参数指定的服务器上 (2)proxy_method 表示转发时的协议方法名 proxy_method POST; 客户端转发来的GET请求在转发时方法名会改为POST请求 (3)proxy_redirect 当上游服务器返回的响应是重定向或者刷新请求(HTTP响应码是301或者302),可以重设HTTP头部的location或refresh proxy_redirect http://location:8000/two/ http://location:8000/noe/ (4)proxy_next_upstream 当上游服务器请求出现错误,继续换一台服务器转发请求。     error:在与服务器建立连接,向其传递请求或读取响应标头时发生错误;     timeout:在与服务器建立连接,向其传递请求或读取响应头时发生超时     invalid_header:服务器返回空响应或无效响应;    

Nginx动静分离

狂风中的少年 提交于 2019-12-26 19:43:54
访问我的博客 前言 最新公司新开了一个项目,项目由我来配置基础环境,会写一系列的教程来展示,一个网站从零到上线的整个过程。首先本文介绍资源文件的隔离。 为什么要实现动静分离 为什么要将静态资源文件与动态请求进行分离? 为了降低 Tomcat 服务器的负载,可以通过本文设置并结合 CDN 来实现来更彻底地降低服务器的负载。 如图所示,所有的请求都压到了同一台服务器上, 无论静态还是动态的请求,这样流量大的话势必会造成服务器的负载过高,因为动静分离是必不可少的。 环境介绍 首先这是我们项目的目录结构, resource 目录和 **_res** 目录中都是静态资源文件,存放比如 js/css/img 等资源。这两个目录下的文件有所不同,**_res** 目录下面是压缩版本的,比如压缩的js/css。通过 Git 或者 SVN 将项目上传到服务器上后,配置 Nginx 来完成静态资源的分离。 首先看一张图(图的来源是: http://www.cnblogs.com/xiaoblog/p/4241086.html ) 当请求经过 Nginx 时,如果是静态资源的请求,就直接返回主机上静态资源即可, 如果是动态请求,则去请求 Tomcat 服务器后再返回。如果流量不是很大,静态资源可以和 Tomcat 服务器放在同一台主机上,否则需要将静态资源与 Tomcat 服务器分开。

keepalived实现服务高可用

China☆狼群 提交于 2019-12-26 15:27:33
第1章 keepalived服务说明 1.1 keepalived是什么?   Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。   Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。   所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。 keepalived官网http://www.keepalived.org 1.2 keepalived服务的三个重要功能  管理LVS负载均衡软件  实现LVS集群节点的健康检查中  作为系统网络服务的高可用性(failover) 1.3 Keepalived高可用故障切换转移原理   Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual

Nginx与F5会话保持介绍

喜夏-厌秋 提交于 2019-12-25 01:00:19
Nginx是一个很高效稳定的软负载均衡器,最新的版本可以负载均衡HTTP(s),TCP,UDP等多种协议的链接。一般访问量比较大一点的Web站点都会用NGINX做HTTP协议的Web负载均衡,其后端一般是多个PHP或者JAVA中间件。另外NGINX还可以和Keepalived配合防止均衡器的单点故障,这一点要强于F5,A10这一类的硬件负载均衡设备。 但是F5,A10等硬件负载均衡器虽然价格昂贵但是仍然很有市场,其中原因之一就是硬件负载均衡器比Nginx配置简单,具备图形化界面,有图形化的实时监测界面(收费版的Nginx Plux也有这个功能,但是价格更加昂贵)。但是最重要的一点,就是硬件负载均衡器有成熟的会话保持措施,这一点是Nginx的弱点。 Session会话保持机制? 一般来说,我们在java中都通过如下代码进行用户登录后的服务端注册,并且在用户下次请求时无需再登陆一遍,这就是Servlet的Session。 HttpSession session = request.getSession(false); session.setAttribute("data", data); session.getAttribute("data"); 使用了这种Session策略,那么Web容器比如tomcat就为当前用户生成一个SessionID,并且以这个SessionID为索引

ELK 之前端 nginx+elasticsearch+ kibana 部署

别等时光非礼了梦想. 提交于 2019-12-24 16:08:47
之前有导读部分内容,介绍了elk的及kafka的前世今生及优点,各位客官可以点击这里访问,欢迎大家批评指正交流学习共同进步; ( https://blog.51cto.com/seekerwolf/2085891 ) OS:Centos 7 ELK Stack : 6.2.2 安装方式:源码安装 我的日志收集系统是基于这样的架构来做,前端代理使用Nginx,然后是ELK 的全家桶,文件收集使用filebeat来搞定; 一,系统优化, 在安装ES 的主机上需要作如下系统级别的优化工作,不然启动ElasticSearch 的时候会出现报错,同时给未来的运维工作也埋下隐患,所以一开始做好优化之后,以后就不会被各种怪异问题缠绕了! #最大文件打开数参数优化: max file open file-max的含义。man proc,可得到file-max的描述: This file defines a system-wide limit on the number of open files for all processes. (See also setrlimit(2), which can be used by a process to set the per-process limit, RLIMIT_NOFILE, on the number of files it may open

部署Nginx+Tomcat负载均衡集群

杀马特。学长 韩版系。学妹 提交于 2019-12-24 04:18:56
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强 下面将讲解以Nginx为负载均衡器,Tomcat为应用服务器的负载集群的设置方 本次的实验服务器系统为 CentOS 7 环境包:pcre-devel zlib-devel openssl-devel gcc gcc-c++ Nginx :192.168.10.130/24 (安装包nginx-1.6.0) Tomcat1:192.168.10.128/24 (jdk-8u91-linux-x64.

k8s资源之service

自闭症网瘾萝莉.ら 提交于 2019-12-24 02:48:36
发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 ———————————————— • 在 k8s 集群中, service 是一个抽象概念,它通过一个虚拟的 IP 映射指定的端口,将代理客户端发来的请求转到后端一组 pod 中的一个上。这是个神马意思呢? pod 中的容器经常在不停地销毁和重建,因此 pod 的 IP 会不停的改变,这时候客户端就没法访问到 pod 了,现在有了 service 作为客户端和 pod 的中间层,它在这里抽象出一个虚拟 IP ,然后集群内部都可以通过这个虚拟 IP 访问到具体的 pod 。 常用命令: • kubectl get svc • kubectl label svc S erviceName type=s1 • kubectl label svc ServiceName type- • kubectl get svc -l type=s1 • kubectl describe svc ServiceName • kubectl edit svc ServiceName • Kubectl delete svc

k8s实践(三):pod常用操作

半城伤御伤魂 提交于 2019-12-23 19:56:41
环境说明: 主机名 操作系统版本 ip docker version kubelet version 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2 node节点 k8s集群部署详见: Centos7.6部署k8s(v1.14.2)集群 k8s学习资料详见: 基本概念、kubectl命令和资料分享 一、 pod简介 1. pod概览 Pod是kubernetes中你可以创建和部署的最小也是最简单位。一个Pod代表着集群中运行的一个进程。 Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能由一个或者多个容器组合在一起共享资源 在Kubrenetes集群中Pod有如下两种使用方式: 一个Pod中运行一个容器。“每个Pod中一个容器”的模式是最常见的用法:在这种使用方式中,你可以把Pod想象成是单个容器的封装