nginx04-负载均衡
Nginx负载均衡负载均衡概述早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢? 负载均衡的原理及处理流程系统的扩展可以分为纵向扩展和横向扩展。 纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力 横向扩展是通过添加机器来满足大型网站服务的处理能力。 这里面涉及到两个重要的角色分别是”应用集群”和”负载均衡器”。 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。 负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。 负载均衡的作用1、解决服务器的高并发压力,提高应用程序的处理性能。 2、提供故障转移,实现高可用。 3、通过添加或减少服务器数量,增强网站的可扩展性。 4、在负载均衡器上进行过滤,可以提高系统的安全性。 负载均衡常用的处理 ...
nginx03-Rewrite功能配置
Rewrite功能配置Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。www.jd.com注意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持,因此在编译安装Nginx服务器之前,需要安装PCRE库。Nginx使用的是ngx_http_rewrite_module模块来解析和处理Rewrite功能的相关配置。 Rewrite的相关命令 123456set指令if指令break指令return指令rewrite指令rewrite_log指令 Rewrite的应用场景 123456域名跳转域名镜像独立域名目录自动添加"/"合并目录防盗链的实现 Rewrite的相关指令set指令该指令用来设置一个新的变量。 语法 set $variable value; 默认值 — 位置 server、location、if variable:变量的名称,该变量名称要用”$”作为变量的第一个字符,且不要与Nginx服务器预设的全局变量同名。 value:变量的值,可以是字 ...
nginx02-进阶篇
Nginx进阶篇Nginx服务器基础配置实例前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作,并且提供基本的web服务器功能。 接下来我们将通过一个比较完整和最简单的基础配置实例,来巩固下前面所学习的指令及其配置。 需求如下: 1234567891011121314(1)有如下访问: http://192.168.200.133:8081/server1/location1 访问的是:index_sr1_location1.html http://192.168.200.133:8081/server1/location2 访问的是:index_sr1_location2.html http://192.168.200.133:8082/server2/location1 访问的是:index_sr2_location1.html http://192.168.200.133:8082/server2/location2 访问的是:index_sr2_location2.html(2 ...
nginx01-简介
Nginx简介背景介绍Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码进行了开源,这也为Nginx的发展提供了良好的保障。 名词解释 WEB服务器: WEB服务器也叫网页服务器,英文名叫Web Server,主要功能是为用户提供网上信息浏览服务。 HTTP: HTTP是超文本传输协议的缩写,是用于从WEB服务器传输超文本到本地浏览器的传输协议,也是互联网上应用最为广泛的一种网络协议。HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务端是网站,通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个到服务器上指定端口的HTTP请求。 POP3/SMTP/IMAP: POP3(Post Offic Protocol 3)邮局协议的第三个版本, SMTP ...
docker8-持续集成与持续交付
CICD - 持续集成与持续交付持续集成 CI什么是持续集成?(CI:Continuous Integration) 软件开发中,集成是一个很可能发生未知错误的过程。持续集成是一种软件开发实践,希望团队中的成员频繁提交代码到代码仓库,且每次提交都能通过自动化测试进行验证,从而使问题尽早暴露和解决 持续集成的好处是什么? 持续集成可以使问题尽早暴露,从而也降低了解决问题的难度,正如老马所说,持续集成无法消除bug,但却能大大降低修复的难度和时间 持续交付 CD什么是持续交付?(CD:Continuous Delivery) 持续交付是持续集成的扩展,指的是将通过自动化测试的软件部署到产品环境。持续交付的本质是把每个构建成功的应用更新交付给用户使用。在持续交付的世界里,我们对完成的定义不是测试完成,而是交付到客户手中。这里需要注意的是,CD代表持续交付(Continuous Delivery)而不是持续部署(Continuous Deploy),因为部署也包括部署到测试环境,而持续交付代表的是功能的上线,交付给用户使用 持续交付的好处是什么? 持续交付的好处在于快速获取用户反 ...
docker7-Docker-Compose
Docker Compose思考前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run -d –name -p等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知 使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 简介Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用 描述Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源 Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker a ...
docker6-图像化工具
Docker图形化工具docker 图形页面管理工具常用的有三种,DockerUI ,Portainer ,Shipyard 。DockerUI 是 Portainer 的前身,这三个工具通过docker api来获取管理的资源信息。平时我们常常对着shell对着这些命令行客户端,审美会很疲劳,如果有漂亮的图形化界面可以直观查看docker资源信息,也是非常方便的。今天我们就搭建单机版的三种常用图形页面管理工具。这三种图形化管理工具以Portainer最为受欢迎。 1.查看portainer镜像1docker search portainer 2.portainer镜像下载1docker pull portainer/portainer 3.启动dockerui容器12docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sockportainer/portainer 4.浏览器访问http://106.15.239.153:9000/ 设置一个密码即可,点击创 ...
docker5-idea整合 -CA认证
一、Idea集成docker实现镜像打包一键部署1 、Docker开启远程访问1234#修改该Docker服务文件vi /lib/systemd/system/docker.service#修改ExecStart这行ExecStart=/usr/bin/dockerd - H tcp://0.0.0.0: 2375 - H unix:///var/run/docker.sock 将文件内的 ExecStart注释。 新增如上行 #ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375-H unix:///var/run/docker.sock 12345678#重新加载配置文 ...
docker4-仓库
Docker仓库搭建问题描述: 在我们普通的 docker pull 的过程,都是从hub.docker.com 进行镜像的拉取。但是这个有一个问题,在公司的内部项目中如果 push 上去,那么就会被其他的人看到,这个显然是不允许的。就好比 很多公司不会把项目代码放到github上面一样,他们会在自己的内网搭建gitlab服务器好在docker已经考虑到这一点,提供好了。 Docker官方Registry拉取镜像仓库1docker pull registry 查看所有镜像1docker images 启动镜像服务器registry首先在在主机上新建一个目录,供存储镜像 由于Registry是一个镜像,运行后若我们删除了容器,里面的资源就会丢失所以我们在运行时,指定一个资源的挂载目录,映射到宿主的一个目录下,这样资源就不会丢失了 12cd /usr/local/mkdir docker_registry 12docker run -d -p 5000:5000 --name=xuxiaomoregistry --restart=always -v/usr/local/doc ...
docker3-高级-Dockerfile
Docker定制镜像 当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。 从已经创建的容器中更新镜像,并且提交这个镜像 使用 Dockerfile 指令来创建一个新的镜像 对于开发人员,可以为开发团队提供一个完全一致的开发环境 对于测试人员,可以直接拿开发时所构建的镜像测试。 对于运维人员,在部署时,可以实现快速部署、移值。 Dockerfile 定制镜像镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。 Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 Dockerfile常用命令FROM指定基础镜像 基础镜像不存在会在Docker Hub上拉去(一般会是文件的第一个指令) 使用格式:FROM <镜像>: ...