引言 在上一篇,我们组装好了虚拟机的硬件部分,那么现在我们就要把操作系统装上了,既然是服务器,那么安装linux操作系统是个比较好的选择,如果你喜欢的话,安装windows也是没有任何问题的 我这里选择centos7作为虚拟机环境,centos的系统比较稳定,而且在上一篇为虚拟机命名的时候,就已经做好了铺垫了,那么首先我们需要获取centos的光盘镜像文件.下载centos7镜像文件 centos7下载页:http://101.110.118.38/isoredirect.centos.org/…
引言 在前面几篇中,我们成功的搭建起了一台nginx服务器,所以我们要重复前面的步骤,把服务器的数量增加到3台以上,我这里已经建好了另外两台,分别是centos7-22,centos7-23,对应的ip分别是192.168.10.22,192.168.10.23,因为i这个IP待会我们在配置后端服务器组的时候需要用到,如果材料准备完毕的话,我们就开始配置后端服务器组吧. 配置后端服务器组 利用centos7-21(以下简称21号)作为反向代理服务器,另外两台centos7-22,centos7-…
引言 虽然上一篇我们成功的启动了虚拟机,也安装好了操作系统,但是这台虚拟机和主机以及其他虚拟机是没有办法连通的,我们的目标是配置多台服务器并且配置nginx反向代理,来实现负载均衡,所以不能访问内网是不可以的,那么接下来我们就要开始配置网络了 配置网络 配置网络之前,我们需要知道我们的本机虚拟机网卡的IP,原理是把宿主机的虚拟网卡当作网关,然后把所有的虚拟机都配置在这一网段下,那样就能建立一个局域网的环境了,虽然我们目前只有一台虚拟机,但是我们可以重复前两篇的步骤 ,来多建立几台 打开网络和共享…
引言: 在上一篇,我们已经装好了虚拟机,并且已经配置好了网络,那么今天我们就要开始安装nginx服务器了. 安装工具以及过程 安装gcc编译套件以及nginx依赖模块 yum -y install gcc gcc-c++ automake pcre pcre-devel openssl openssl-devel zlib zlib-devel 获得nginx源码 .tar.gz 如果出现wget command not find,找不到wget命令的话,那么就先下载wget工具 yum ins…
引言 作为一个web程序员,有时候需要想尽办法来利用有限的资源来产生最大程度的负载,除了提高硬件配置,增加带宽之外,CDN加速,DNS加速,缓存,还可以利用反向代理.但是要说反向代理,就不的不说nginx服务器,nginx是一款免费并且开源的高性能服务器以及反向代理服务器产品,虽然他体积小且精简,但是功能很强大,并且可以和其他各种服务器进行配合.有句话是这么说的,I hear,I forgot;I see, I recognised;I do, I understood! 亲自实践永远是最好的学…
前言 这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,缓存等都用上了,还是不能解决问题.马老板很大气,又买了3台服务器,让小明做个集群分流一下. 集群是什么? 是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作.将多个物理机器组成一个逻辑计算机,实现负载均衡和容错. Nginx是什么? Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同…
前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[Todo]( [Id] [uniqueidentifier] NOT NULL, [Name] [nvarchar](100) NULL, CONSTRAINT [PK_Todo] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STAT…
需求 前几天,马老板给小明和小红一个"待办事项"网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows.和 Linux 上运行. 小明整理了一下"待办事项"的功能清单: 获取所有待办事项 按 ID 获取项 添加新项 更新现有项 删除项 创建 Web 项目 从"文件"菜单中选择"新建">"项目" . 选择"ASP.NET Core Web 应用程序"模板,再单击&qu…
前言 小明目前已经把"待办事项"功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的. Serilog是什么? 在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog 是这几年快速崛起的Log框架之一,Serilog是以Structured logging 为基础进行设计,透过logging API 可以轻松的记录应用程式中对象属性,方便快速进行logging 内容进行查询与分析,并将其纪录内容透过json (可指定) 的方式输出.…
前言 这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上.赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的. 什么是Token Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码. 什么是JWT Json web token (JWT),是为了在网…
前言 小明已经实现"待办事项"的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档.对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试. Swagger是什么? Swagger用于描述 REST API. 它允许计算机和人员了解服务的功能,而无需直接访问实现(源代码.网络访问.文档). 包安装 右键单击"解决方案资源管理器&q…
前言 小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛. 传统验证 [HttpPost] public async Task<ActionResult<Todo>> PostTodo(Todo todo) { if (string.IsNullOrEmpty(todo.Name)) { return Ok("名称不能为空"); } context.Todo.Add(todo); await conte…
前言 这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,马老板很生气,叫小明一定要解决这个问题.性能问题一般用什么来解决呢?小明第一时间想到了缓存. 什么是缓存 缓存是实际工作中非常常用的一种提高性能的方法. 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性. 缓存最适用于不经常更改的数据. 通过缓存,可以比从原始数据源返回的数据的副本速度快得多. 使用内存缓存(MemoryCache) 首先,我们简单的创建一个控制器,实现一个简单方法,返回当前时间.我们可以看到…
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2.0 webapi项目 ApiService 2. 参照官方文档,https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x 在Startup中增加 app.UseForwarded…
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2.0 webapi项目 ApiService 2. 参照官方文档,https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x 在Startup中增加 app.UseForwarded…
为了对比Hproxy和Nginx负载均衡的效果,分别在测试机上(以下实验都是在单机上测试的,即负载机器和后端机器都在一台机器上)做了这两个负载均衡环境,并各自抓包分析.下面说下这两种负载均衡环境下抓包分析后的结果: 1)Haproxy负载均衡环境下的实验记录.后端有一台机器挂掉后,如果还没达到探测的时间点时,请求还会往挂掉的这台机器转发,请求会丢失.Haproxy负载均衡的实验记录如下:1--先看下Haproxy的配置. 配置inter 20000为20s检测一次,这个是为了更明显的抓下HAPr…
nginx负载均衡集群  0.前言:nginx 负载均衡,属于网络7层模型中的应用层,说白了就是一个代理,要用 upstrem 模块实现,代理则用proxy模块 1.可以针对域名做转发,lvs只能针对ip(牵扯到ip和内核的改动) 2.优势: (a)非常灵活地配置负载均衡 (b)可以根据域名去转发  应用情景:不同域名对应不同机器 或者 域名下有二级目录,不同目录可以针对不同的real server(不需要配置公网 IP)   实验环境: director主机: 192.168.131.132…
nginx负载均衡基于ip_hash的session粘帖 nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个. nginx的upstream目前支持的5种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream backserver { server 192.168.0.14; server 192.…
一.关于CentOS系统介绍 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.基于Red Hat持续升级,和对已知BUG修复,所以CentOS更多用于搭建大型企业级服务器.目前较新版本为7.0,本文使用CentOS7 64bit进行搭建系统负载均衡. 二.安装VMWare VMWare (Virtual…
上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求.所以系统架构引入Keepalived组件,实现系统高可用. 一.Keepalived介绍 Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问…
配置nginx负载均衡 执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes  2; events {     worker_connections  1024; } http {     include       mime.types;     default_type  application/octet-stream;     sendfile        on;     keepalive_…
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 今天我们来学习下有关nginx的负载均衡配置.nginx的负载均衡是通过nginx的upstream模块和proxy_pass反向代理来实现的. 说明:有三台服务器,前端的A服务器使用nginx进行负载均衡配置.后端是两台配置的相同服务器,以访问a.ilanni.com这个域名为例.结构图,如下: A服务器对外(公网)开放80端口,B.C服务器就是两台配置相同的服务器.B服务器开放8080端口,C服务器开放8090端口.当客户端访问a.ilanni…
在网站使用nginx+php做负载均衡情况下,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 下面罗列几种nginx负载均衡中session同步的方式 1)不使用session,换用cookiesession是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站.你访问web服务器A,产生了session然后把它放到cookie里面,当…
nginx 负载均衡策略   1. 轮询轮询方式是nginx负载均衡的默认策略,根据每个server的权重值来轮流发送请求,例如:upstream backend {server backend1.example.com;server backend2.example.com;}这种情况是每个server都使用相同的权重,默认值为1可以手动设定权重,例如upstream backend {server backend1.example.com weight=5;server backend2.e…
nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器. nginx负载均衡服务器 tomcat1服务器 tomcat2服务器 1.1   负载均衡的配置 第一步:安装tomcat.两个实例. 第二步:安装nginx. 第三步:配置负载均衡,修改nginx的配置文件. 第四步:重新加载配置文件 upstream服务器列表中如果不加权重的话,默认权重都是一样的,分配的负载也是平均的. 可以设置权重,调整服务器的负载.…
在文章<使用Nginx负载均衡搭建高性能.NETweb应用程序一>中,让我们对Nginx有了一个初步认识,下面我们将在windows平台下面使用Nginx演示集群部署我们的web应用. 一.下载Nginx部署包 到Nginx官网去下载一个windows平台下面的Nginx部署包,目前我下载的是一个nginx-1.6.2版本的. 二.命令启动服务 启动:start nginx.exe 停止:nginx -s stop 重新加载: nginx -s reload 三.实例搭建 首 选:我们要在我们…
Nginx负载均衡 Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1).轮询(默认)       每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2).weight       指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况. 2).ip_hash       每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.  3).fair(第…
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查. 如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置N…
下面给大家总结了几种真正的nginx负载均衡的功能了,在此我们加了一个权重判断法就是根据nginx负载的状态实现分配访问用户到权重值少的机器了,具体配置如下. nginx为后端web服务器(apache,nginx,tomcat,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享,数据库共享,session共享问题.文件共享可以使用nfs,共享存储(fc,ip存储都行)+redhat GFS集群文件系 统,rsync+inotify文件同步等.小规模的集群中使用更多的是nfs.…
重点两部分:一.负载均衡二.tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问. Nginx是一个常用的反向代理服务,可自定义模块,实现请求转发及负载均衡(根具体采用策略有关).为了tomcat集群的高可用性,还需要实现nginx的双机热备.   一,如果仅是对外提供一个页面访问,不用区分单一用户(不区分每个访问session,不涉及用户权限,用户资料等内容),仅仅配置nginx负载均衡策略即可. N…