Nginx(四)-进阶-反向代理
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:变量的值,可...
Nginx(三)-进阶-配置
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.htm...
Nginx(二)-基础-入门
Nginx环境准备Nginx版本介绍Nginx的官方网站为: http://nginx.org 打开源码可以看到如下的页面内容 Nginx的官方下载网站为http://nginx.org/en/download.html,当然你也可以之间在首页选中右边的download进入版本下载网页。在下载页面我们会看到如下内容: 获取Nginx源码http://nginx.org/download/ 打开上述网站,就可以查看到Nginx的所有版本,选中自己需要的版本进行下载。下载我们可以直接在windows上下载然后上传到服务器,也可以直接从服务器上下载,这个时候就需要准备一台服务器。 准备服务器系统环境准备 12345VMware WorkStationCentos7MobaXterm xsheel,SecureCRT网络 (1)确认centos的内核 准备一个内核为2.6及以上版本的操作系统,因为linux2.6及以上内核才支持epoll,而Nginx需要解决高并发压力问题是需要用到epoll,所以我们需要有这样的版本要求。 我们可以使用uname -a命令来查询linux的内核...
Nginx(一)-基础-简介
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)邮局协议的第三个版本, S...
Git命令
简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 命令 命令名称 作用 git init 初始化本地库 git status 查看本地库状态 git add 文件名 添加到暂存区 git commit -m ‘提交信息’ 文件名 提交到本地库 git reflog 查看历史记录 git reset –hard 版本号 版本穿梭 git branch 分支名称 创建分支 git branch -v 查看分支 git checkout 分支名 切换分支 git checkout -b 分支名 创建并切换到新分支(git branch 分支名称 + git checkout 分支名 ) git checkout -B 分支名 重置分支(删除已存在的分支且重新创建,分支不存在也不会报错) git merge 分支名 把指定的分支合并到当前分支上
SVN1.13.0-安装及使用手册
SVN1.13.0-安装及使用手册准备安装包 TortoiseSVN-1.13.0.28678-x64-svn-1.13.0 LanguagePack_1.13.0.28678-x64-zh_CN 安装TortoiseSVN 双击TortoiseSVN-1.13.0.28678-x64-svn-1.13.0 点击Nest 点击Nest 点击Browse 自定义安装位置location 后 ,点击Nest 点击Install 点击Finish LanguagePack 双击LanguagePack_1.13.0.28678-x64-zh_CN 点击下一步 点击完成 配置 鼠标点击桌面右键 选择TortoiseSVN-> Settings Language 勾选 中文 全局忽略文件,下面替换上图中 Global ignore pattern 1logs target mvnw *.mvnw *.cmd *.iml *.gitignore *.mvn *.idea *.o *.lo *.la *.al .libs *.so...
设计模式-装饰者模式
装饰者模式需求介绍星巴克咖啡订单项目。 咖啡种类:Espresso(意大利咖啡)、ShortBlack(浓缩咖啡)、LongBlank(美式咖啡)、Decaf(无因咖啡) 调料:Milk、Soy(豆浆)、Chocolate 要求在扩展新的咖啡种类时候,具有良好的扩展性、改动方便、维护方便 使用OO的来计算不同种类咖啡的费用:客户可以点单品咖啡,也可以点咖啡+调料组合。 传统方式思路1 Drink 是一个抽象类,标识饮料 des就是对咖啡的描述,比如咖啡的名称 cost()方法是计算费用,Drink类中做成一个抽象方法 Decaf就是单品咖啡,集成Drink,并实现cost Espress && Mikl 就是单品咖啡+调料,这个组合很多 优缺点 思路简单。 这样设计,会有很多类,当我们新家一个单品咖啡,或者一个新的调料,类的数据就会倍增(单品+调料组合),导致类爆炸。 改进思路咖啡单品+调料组合会造成类的倍增,因此可以做改进,将调料内置到Drink类,这样就不会造成类数量过多,从而提高项目的维护成本,具体看思路2。 思路2 milk、soy、chocol...
设计模式-桥接模式
桥接模式模式需求介绍对不同手机类型的不同品牌实现操作编程。 传统方式思路 优缺点 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要再各个样式类下增加。 违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码维护成本。 改进思路使用桥接模式。 基本介绍 桥接模式(Bridge Pattern):将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。 属于结构型设计模式。 桥接模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各个部分的独立性以及应对他们的功能扩展。 原型模式中包含如下要素: Clinet:桥接模式的调用者。 Implementor:行为实现类的接口。 ConcreteImplementorA/B:行为的具体实现类。 抽象类(Abstraction):维护了了Implementor(即它的实现类Concrete...
设计模式-适配器模式
适配器模式模式泰国插座用的是两孔的(欧洲标准),可以买个多功能转换插头(适配器),这样就可以用了。 基本介绍 适配器模式(Adapter Pattern):将某个类的接口转化为目标客户期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。 适配器属于结构型模式。 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。 原型模式中包含如下要素: Source: 被适配者,需要被适配的类、接口、对象,简称src。 Adapter:适配器 Desitination:目标,最终需要输出,det,即Target。 Director:指挥者,构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象。它主要的作用,1:隔离了客户与对象的生产过程,2:负责控制产品对象的生产过程。 需求引入 以生活中充电器举例子来讲适配器,充电器本身相当于Adaper,220V交流电相当于src(被适配者),我们的目标des是5V直流电) 类适配器思路 代码Voltage220V1234567public cla...
设计模式-建造者模式
建造者模式需求引入 需要建造房子,这一过程为打桩、砌墙、封顶 房子有各式各样,比如普通房,高楼,别墅,各种的房子的过程虽然一样,但是要求不要相同的 编写程序,完成需求 使用传统方式思路 代码AbstractHouse12345678910111213/** * @author kongliufeng */public abstract class AbstractHouse { public abstract void buildBasic(); public abstract void buildWalls(); public abstract void roofed(); public void build(){ buildBasic(); buildWalls(); roofed(); }} CommonHouse12345678910111213141516171819/** * @author kongliufeng */public class Comm...
设计模式-原型模式
原型模式需求引入有一只羊,姓名:duoli,年龄:1, 请编写程序创建和duoli属性完全一样的10只羊出来 使用传统方式思路 代码Sheep12345678910111213141516171819202122232425262728public class Sheep { private String name; private int age; public Sheep() { } public Sheep(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() ...
设计模式-工厂模式
简单工厂模式需求引入一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(PepperPizza、CheesePizza、PizzaStore) 披萨的制作流程(prepare、bake、cut、box) 完成披萨店订购功能 使用传统方式思路 代码Pizza123456public abstract class Pizza { public abstract void prepare(); public abstract void bake(); public abstract void cut(); public abstract void box();} PepperPizza123456789101112131415161718192021222324public class PepperPizza extends Pizza{ private String name; @Override public void prepare() { } @Overr...
设计模式-单例模式
概述 所谓单例设计模式,就是采用一定的方法保证整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个获取其对象实例的方法(静态方法)。 单例模式具体有八种方式: 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(线程不安全,同步代码块) 双重检查 静态内部类 枚举 饿汉式(静态常量)123456789101112131415161718/** * @author kongliufeng */public class Singleton { private final static Singleton singleton = new Singleton(); /** * 私有化构造器 */ private Singleton() { } /** * 对外提供访问 */ public static Singleton getInstance(){ return singleton; ...
设计模式-六大设计原则
设计模式的目的 编写软件过程中,往往面临着来自耦合性、内聚性、可维护性、可扩展性、重用性、灵活性等多方便的挑战,设计模式是为了让程序(软件),具有更好的 代码重用性(相同的功能代码,不用多次编写) 可读性(编写规范性,便于其他程序员的阅读和理解) 可扩展性(当需要增加新的功能时,非常的方便) 可靠性(当我们增加新的功能时候,对原来的功能没有影响) 使程序呈现高内聚,低耦合的特性 设计模式的六大原则 设计模式原则,就是编写程序时候,应当遵守的原则,也是各个设计模式的基础(设计模式为什么这样设计的依据)。 设计模式七大原则: 单一职责原则 开闭原则 里氏替换原则 接口隔离原则 依赖倒转(倒置)原则 迪米特法则 单一职责原则 对类来说,即一个类应该只负责一项职责。当类A负责两个不同的职责:职责1,职责2。当职责1的需要变动而改变A时,可能造成职责2执行错误,所以需要将A的颗粒度分解伟A1,A2. 降低类的复杂性,一个类负责一项职责 提高类的可读性,可维护性 降低变更引起的风险 通常情况下,我们应该遵守单一职责原则,只有逻辑足够简单,才能在代码级违反单一职责...
设计模式-UML类图
简介 UML(Unified modeling language UML)统一建模语言,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。 UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。 UML类图 用户描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。 类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。 类之间的关系:实现、泛化(继承)、依赖、关联、聚合和组合。 类图表示法UML类图中具体类、抽象类、接口和包有不同的表示方法。 在UML类图中表示具体类具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示: “+” 表示 public; “-” 表示 private; “#” 表示 protected; 不带符号表示 default。 UML类图中表示抽象类抽象类在UML类图中同样用矩形框表示,但是抽象类的类...
设计模式-基础
概述 设计模式(Design pattern) 代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。 类型设计模式分为三种类型,共23中。 创建型模式 单例模式 原型模式 工厂模式(工厂方法模式) 抽象工厂模式 建造者模式 结构性模式 适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式 行为型模式 模板方法模式 命令模式 访问者模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式(Interpreter模式) ...
VMware入门及安装
VMware VMware是一款运行在windows系统上的虚拟机软件,可以虚拟出一台计算机硬件,方便安装各类操作系统。如Windows、macos、linux、unix等等 一、概述地址相关官网地址:https://www.vmware.com/ 下载地址:https://customerconnect.vmware.com/cn/downloads 用途 一台电脑本身是可以装多个操作系统的,但是做不到多个操作系统切换自如,VMware可以使用户在一台计算机上同时运行多个操作系统,还可以像Windows应用程序一样来回切换。用户可以如同操作真实安装的系统一样操作虚拟机系统,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或者连接到互联网。 二、安装准备安装包:VMware-workstation-full-14.1.2-8497320.exe 密钥文件:VMware 所有版本永久许可证激活秘钥.txt 安装流程1.开始安装双击VMware-workstation-full-14.1.2-8497320.exe开始安装 2.欢迎页面点击下一步 3.同意安装许可勾选我接...
什么是虚拟机?
虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。 虚拟机技术 虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术有操作系统中内存的虚拟化,实际运行时用户需要的内存空间可能远远大于物理机器的内存大小,利用内存的虚拟化技术,用户可以将一部分硬盘虚拟化为内存,而这对用户是透明的。又如,可以利用虚拟专用网技术(VPN)在公共网络中虚拟化一条安全,稳定的“隧道”,用户感觉像是使用私有网络一样。 虚拟系统 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ...
POI导出Word表格
项目需求,需要将页面上的报表导出Word文档。 一、报表如下: 二、主要实现代码1.导出Util类123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167package com.yhksxt.util; import java.io.IOException;im...