随笔 - 410
文章 - 0
评论 - 519
阅读 -
147万
01 2019 档案
设计模式系列
摘要:包括7大设计原则和23大设计模式。7大设计原则这7大设计原则不仅是23大设计模式要去遵守的,也是我们平常开发过程中要时刻去遵守的准则,所以说非常非常重要。1,单一职责原则1)定义:就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一。2)如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发...
阅读全文
Nginx系列
摘要:包括nginx的入门和进阶学习。 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系列5:nginx的请求处理流程 nginx系列6:nginx的进程结构 nginx系列7:处理HTT
阅读全文
nginx系列14:对HTTP协议的反向代理proxy模块
摘要:proxy_pass指令URL参数规则需要注意的是,url中携带和不携带URI时发往上游请求的行为不同!
阅读全文
nginx系列13:最少连接算法以及如何跨worker进程生效
摘要:最少连接算法使用最少连接算法可以使得nginx优先选择连接最少的上游服务器,需要用到upstream_least_conn模块。如何跨worker进程生效因为nginx是多进程结构的,默认多个worker进程间无法共享数据。使用upstream_zone模块可以实现这个需求。
阅读全文
nginx系列12:一致性哈希算法
摘要:前面一节的hash算法存在一个问题,当上游的应用服务器因某一台down掉导致服务器数量发生变化时,会导致大量的请求路由策略失效,一致性哈希算法可以缓解这个问题。一致性哈希算法1,hash算法存在的问题2,一致性哈希扩容前:扩容后:使用方法:只需要在hash key后面添加consistent就可以了。
阅读全文
nginx系列11:负载均衡哈希算法ip_hash与hash模块
摘要:使用默认的round-robin负载均衡算法无法保证某一类请求只能由上游的某一台应用服务器处理,它只适用于AKF扩展中的水平扩展,如果要保证某一类请求只能由上游的某一台应用服务器处理,就需要用到AKF扩展中的Z轴扩展,一般使用基于哈希算法来实现。ip_hash模块基于客户端的IP地址。使用方法:hash模块基于任意的参数和变量。使用方法:
阅读全文
nginx系列10:通过upstream模块选择上游服务器和负载均衡策略round-robin
摘要:upstream模块的使用方法1,使用upstream和server指令来选择上游服务器这两个指令的语法如下图:示例:2,对上游服务使用keepalive长连接负载均衡策略round-robin加权Round-Robin算法是其它所有负载均衡算法的基础。
阅读全文
nginx系列9:HTTP反向代理请求处理流程
摘要:HTTP反向代理请求处理流程如下图:
阅读全文
nginx系列8:反向代理和负载均衡原理
摘要:反向代理是nginx的一个非常重要的功能。反向代理nginx支持四层反向代理和七层反向代理,如下图。负载均衡负载均衡是实现服务高性能和高可用的重要手段,而nginx是实现负载均衡的重要工具。
阅读全文
nginx系列7:处理HTTP请求的11个阶段
摘要:处理HTTP请求的11个阶段如下图:序号阶段指令备注1POST_READrealip获取客户端真实IP2SERVER_REWRITErewrite3FIND_CONFIG4REWRITErewrite5POST_REWRITE6PRE_ACCESSlimit_conn, limit_req7ACCESSauth_basic, access, auth_requestauth_basic可以做访问限...
阅读全文
nginx系列6:nginx的进程结构
摘要:nginx的进程结构如下图:通过ps –ef | grep nginx可以看到共有三个进程,一个master进程,两个worker进程。nginx是多进程结构,多进程结构设计是为了保证nginx的高可用高可靠,包含:master进程:也是父进程,负责worker进程的管理。worker进程:也是子进程,worker进程一般配置成与服务器的CPU核数相同,worker进程用来处理具体的请求的。cac...
阅读全文
nginx系列5:nginx的请求处理流程
摘要:nginx的请求处理流程如下图:nginx可以处理来自web(http),Email,TCP/UDP的三类请求。nginx底层使用非阻塞的事件驱动引擎,结合状态机来完成异步通知,其中处理Http请求的是HTTP状态机。
阅读全文
nginx系列3:搭建一个静态资源web服务器
摘要:搭建静态资源web服务器1,创建静态页面在nginx的安装目录(/usr/local/nginx)下创建文件夹webapplications/helloworld,然后创建一个名为index.html的页面。2,修改配置文件打开nginx的配置文件(默认在/usr/local/nginx/conf/nginx.conf),添加以下配置:保存配置后,运行nginx –s reload重新加载配置。3...
阅读全文
nginx系列4:日志管理
摘要:日志切割如果使用默认日志配置,经过一段时间运行后,access.log和error.log文件会变得非常大,使维护和排查问题变得不便,所以非常有必要做日志切割。通常的思路是:使用nginx的-s reopen命令,结合linux系统的crontab定时任务命令,弄一个定时任务按时切割日志文件。每天定时执行脚本切割日志文件。附:bash脚本#!/bin/bash#Rotate the nginx l...
阅读全文
nginx系列2:搭建nginx环境
摘要:我们选择编译安装nginx。1,下载nginx进入nginx的官网下载页面:http://nginx.org/en/download.html找到稳定版本Stable version的下载入口开始下载。然后运行以下命令解压:[root@nginxserver softwares]# tar -xzf nginx-1.14.2.tar.gz 2,安装预环境因为nginx默认会依赖一些基础组件,这些依...
阅读全文
nginx系列1:认识nginx
摘要:nginx介绍nginx是什么呢?可以看下官方网站的定义:nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. 总结起来,nginx是一个HTTP(可以理解为We...
阅读全文
ASP.NET Core基础1:应用启动流程
摘要:先看下ASP.NET Core的启动代码,如下图:通过以上代码,我们可以初步得出以下结论:所有的ASP.NET Core程序本质上也是一个控制台程序,使用Program的Main方法作为程序的入口。控制台Main入口-->IWebHostBuilder-->IWebHost-->Run,发现本质上就是启动一个作为宿主的Host。下面结合源码代详细分析下。宿主构造器:IWebHostBuilder看...
阅读全文
项目结构
摘要:到了ASP.NET Core,项目结构也发生了一些变化,看下面的图片。 共有6点跟.NET Framework不一样,下面来一一说明。1,lauchSettings.json该文件用于指定应用程序的启动设置。2,wwwroot目录一般用来放静态资源文件,比如:js,css,img,ico等。3,依赖项用来组织项目的依赖关系,其中NuGet用于组织从NuGet上安装的依赖项,SDK用于组织Micro...
阅读全文
第一个Web应用
摘要:这篇文章演示如何使用ASP.NET Core创建第一个web api服务。开始新建一个Project。选择模板’ASP.NET Core Web应用程序’,并且输入解决方案名称和项目名称。然后,选择框架’ASP.NET Core 2.2’,模板选择’API’,点击确定。这样一个新的ASP.NET Core Web Api项目就创建好了。添加Controller在文件夹Controllers右键,选...
阅读全文
环境配置
摘要:ASP.NET Core开发要求以下环境:Visual Studio 2017(15.9) or later或Visual Studio Code.NET Core SDK 2.2 or later系统要求我们以Visual Studio 2017(15.9)作为默认的开发工具,所以相应的系统要求如下图:安装注意事项1,Visual Studio 2017安装选项自Visual Studio 20...
阅读全文
ASP.NET Core介绍
摘要:认识ASP.NET CoreASP.NET Core是一个跨平台,高性能,开源的框架,用于构建现代,基于云的网络应用程序,使用ASP.NET Core可以实现:开发web应用,服务,IoT应用和移动端的后台api。可以使用自己擅长的开发工具实现跨平台开发,包括Windows,macOS和Linux。灵活部署,既可以部署在云端,也可以部署在本地。为什么选择ASP.NET Core使用ASP.NET ...
阅读全文