代理模式

lamp+nginx代理+discuz+wordpress+phpmyadmin

时光总嘲笑我的痴心妄想 提交于 2020-03-15 07:03:54
实验课题:搭建LAMP,安装Nginx,作为代理,将MySQL安装在单独的机器,apache负责动态,nginx负责静态 实验环境: 1、VMware Workstation 11 2、设备A:MySQL,IP地址:192.168.0.102,Host:mysql 3、设备B:Nginx+Apache+PHP,IP地址:192.168.0.107,Host:lanp 真机:192.168.0.104 4、Linux发行版:Centos 6.6 x86; 5、Nginx:http://nginx.org/download/nginx-1.6.2.tar.gz 6、Apache:get http://mirrors.sohu.com/apache/httpd-2.4.16.tar.gz 7、PHP: http://cn2.php.net/get/php-5.6.12.tar.gz 8、MySQL: http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.42-linux2.6-i686.tar.gz 9、discuz: http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip 10、wordpress: https://cn.wordpress.org/wordpress

设计模式——代理模式

空扰寡人 提交于 2020-03-14 05:13:59
一、概念:代理模式为其他对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。) 二、UML示意图: Subject类是一个抽象类,里面有抽象方法Operation(),RealSubject继承Subject类并实现Operation()方法,但有时候程序员可能会想要调用这个Operation()之前做一些权限控制,或者说预处理,这时候可以用同样继承于Subject类的Proxy类,Proxy对象内部会有一个RealSubject对象,当调用Operation()方法时Proxy对象会调用这个RealSubject对象的Operation()方法,并在调用它之前或者之后做一些程序员想要做的额外任务。 三、优缺点 优点: 职责清晰。真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。降低了耦合度。 代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。 Client可以针对Subject类进行编程,无需关心用了哪个Proxy类或者是RealSubject类,当需要增加新的Proxy类或者更换另一个Proxy类时,无需更改原代码,符合开闭原则。 缺点:

SpringAOP

只愿长相守 提交于 2020-03-12 22:00:16
1、AOP(Aspect Oriented Programming)面向切面编程 概述:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 AOP是OOP的延续,是函数式编程的一种衍生范型,利用AOP可以对业务逻辑的各个部分进行隔离,,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. 作用:在程序运行期间,不修改源码对已有方法进行增强(加上统一的逻辑处理)。 优势:减少重复代码、提高开发效率、维护方便 AOP是一门统一拦截处理的技术,类似于过滤器技术。与过滤器不同的是过滤过滤是请求路径,而AOP拦截的是方法。 AOP技术的底层技术就是动态代理模式的实现,所有先了解代理模式和动态代理模式 2、代理模式 概述:为其他对象(代理对象)提供一种代理以控制对这个对象(源对象)的访问。就是说,声明一个代理对象去控制对源的对象的访问 代理模式的缺陷: (1)代理类必须要继承或者实现一个基类或者接口,每个接口都要实现一个新的代理类,限制了代理的源对象的类型 (2) 每个方法的逻辑处理,还是要重复编写。(代理模式并不可以减少代码) 3、动态代理模式 (1)动态代理解决了以上代理模式两个问题:    代理模式的类型是固定的,而动态代理模式的代理类,不需要指定固定的接口,可以自由的使用任何接口来实现代理    代理模式的代码还是重复编写的

iOS开发总结-Xcode常见错误

♀尐吖头ヾ 提交于 2020-03-12 04:46:41
iOS开发总结-Xcode常见错误 "file/file.h"filenotfound 如果遇到这种类型的问题报错,可以分为三部来解决,由简到复杂一步一步来,直到解决问题位置。 1. 点击Xcode -> Project -> Clean清除缓存或者使用⌘ + ⇧ + k快捷键来清除。 2. 点击Xcode -> Window -> Projects 清除Derived Data的缓存,在清除缓存之前先彻底退出Xcode,然后直接删除缓存文件夹。 3. 再Build Settings -> Header Search Paths 添加路径,$(SRCROOT)/项目名称/文件路径。 如果上面这三种方法都没有解决问题,就要考虑一下文件是否存在或者导入方式是否有错误了。例如:# include<>和# include""、# import<>和# import""的导入方式是否有错误。 ld: -pie can only be used when targeting iOS4.2or laterclang: error: linker command failed withexitcode1(use -v to see invocation) 首先注意:-pie can only be used when targeting iOS 4.2 or later -pie只能在ios4

spring AOP(2)

强颜欢笑 提交于 2020-03-11 02:14:36
前面写过一篇关于 Spring AOP 方面的文章,探讨了 Spring AOP 底层实现的一些细节知识,这里面涉及到了 JAVA 反射机制,代理模式以及 CGLIB 库的使用。也就是说, Spring AOP 底层实现就是靠动态代理(针对有接口的类)和 CGLIB (针对没有实现接口的一般类),那么,有了这些知识,再辅佐对核心配置 XML 文件解析的能力,其实就可以实现一个简易的基于 IOC 和 AOP 的小框架,大家可以自己尝试着写一下。下面呢我们就由浅入深地来看看在 Spring 中 AOP 是怎么实现的。 最简单的 AOP 实现只需要涉及 3 个概念:目标 (Target) ,通知 (Advice) 和代理 (Proxy) 。目标呢,当然就是真实的需要被代理的对象,一般它会实现至少一个接口。通知呢,就是当目标的方法调用时需要调用的代码,也叫拦截器。而代理,毫无疑问就是加入了通知的目标了,它可以作为目标的替身出现。为了说明这三者的关系,我们来看一个网上有趣的小例子:一间书店开始打折促销,规则是每一名顾客只能买一本书,并且当顾客来到书店时,要说喜欢您来。顾客走的时候,还要说喜欢您再来!(麦当劳啊 ^_^ ) 顾客如果买到 <hibernate in action> 这本书,要抛出异常,告知他没有存货!呵呵,好啦,洪哥,我们动手吧! package com.wepull

linux 下jmeter做压力测试

眉间皱痕 提交于 2020-03-10 19:39:51
jmeter -n -t ./splitserver.jmx -l result.jtl -e -o ./report 参数说明: -n : 非GUI 模式执行JMeter -t : 执行测试文件所在的位置及文件名 -r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r -l : 指定生成测试结果的保存文件, jtl 文件格式 -e : 测试结束后,生成测试报告 -o : 指定测试报告的存放位置 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号 来源: CSDN 作者: 多少个明天_指上流年 链接: https://blog.csdn.net/qq_18844977/article/details/104776051

nginx的原理

给你一囗甜甜゛ 提交于 2020-03-10 15:06:22
一. nginx基本介绍 Nginx特性: Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 1、nginx高并发原理( 多进程+epoll实现高并发 ) Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。 每个子进程只有一个线程,采用的 IO多路复用模型epoll,实现高并发。 2、epoll能实现高并发原理 epoll() 中内核则维护一个链表,epoll_wait 方法可以获取到链表长度,不为0就知道文件描述符准备好了。 在内核实现中 epoll 是根据每个 sockfd 上面的与设备驱动程序建立起来的回调函数实现的。 某个 sockfd 上的事件发生时,与它对应的回调函数就会被调用,来把这个 sockfd 加入链表,其他处于“空闲的”状态的则不会。 epoll上面链表中获取文件描述,这里使用内存映射(mmap)技术, 避免了复制大量文件描述符带来的开销 内存映射(mmap):内存映射文件,是由一个文件到一块内存的映射,将不必再对文件执行I/O操作

1111

China☆狼群 提交于 2020-03-10 11:36:42
 常用的设计模式有23种,但是最常见的设计模式却只有七八种,今天我们就来说说最常见的设计模式之一的代理模式。代理模式的核心思想用一句话概述就是:保护被代理的对象,控制访问。   用一句话概述代理模式很简单,但是实际做起来很多同学可能还是不理解代理模式的应用场景,我们今天就用邓哥的例子来说说代理模式究竟是怎么样的~   话说邓哥的四大爱好是抽烟、喝酒、烫头、浪~邓哥出名之后,邓嫂就开始对邓哥严加管教,邓嫂开始充当起了邓哥经纪人的角色~   代理模式很像是经纪人和明星之间的关系,经纪人的重要功能之一就是做一个filter(拦截器),帮助明星挡住外面很多的事情,以达到保护明星的作用。   我们的代理模式也是这样,把原本的对象或者接口保护在里面,不然别人直接访问到,在访问之前要经过重重的过滤,以此来达到保护接口的作用。   这个时候,如果我们想约邓哥出来玩,邓嫂就会果断的拒绝我们~这个消息都不会传到邓哥那里~   在我们的系统中,有很多比较重要的接口需要进行这样的保护,比如支付类接口、用户登录接口等涉及到钱或者用户信息相关的敏感接口,除了接口本身需要有良好的防御能力之外,通常还会有相应的代理来对接口进行保护。   如果来访问的请求参数是异常的就直接返回,不用访问后面的真正接口,从而达到保护接口的目的。   如果我们问的问题是可以让邓哥处理的,邓嫂就会把消息告诉邓哥,然后邓哥再进行处理。  

sqlmap续

大城市里の小女人 提交于 2020-03-09 22:46:16
sqlmap 续 注入语句 ( 知道绝对路径时候可用 ) http://192.168.99.171/test2/sqli/example10.php?catid=3 ’ union select 1,’<? @eval($_POST[xy])?>’,3,4 into outfile ‘C:/xampp/htdocs/test2/xinyu2.php ‘ --+ 检测注入: http://192.168.99.171/test/xinyu2.php 若有返回内容则已经写入 form 表单 --random-agent 随机请求 --cookie=COOKIE 身份赋予 --technique=TECH SQL injection techniques to use (default "BEUSTQ")T 时间 E 错误 C --dns-domain=DNS.. Domain name used for DNS exfiltration attack --DNS 域 =DNS.. 用于 DNS 渗出攻击的域名 burp 与 wireshark 的区别 http 协议抓包工具 burp ,能改能发,实时互动 wireshark 不能改只能抓住 burp : target (目标) proxy (代理) spider scanner intruder repeater sequencer

spring05

瘦欲@ 提交于 2020-03-09 20:51:02
title: spring05 date: 2020-03-09 19:31:42 tags:代理模式 该部分学习了动态代理。 1、概述 该部分摘抄自秦老师的博客 静态代理 可以使得我们的真实角色更加纯粹 . 不再去关注一些公共的事情 . 公共的业务由代理来完成 . 实现了业务的分工 。 公共业务发生扩展时变得更加集中和方便 . 缺点 : 类多了 , 多了代理类 , 工作量变大了 . 开发效率降低 . 动态代理 动态代理的角色和静态代理的一样 . 动态代理的代理类是动态生成的 . 静态代理的代理类是我们提前写好的 动态代理分为两类 : 一类是基于接口动态代理 , 一类是基于类的动态代理 基于接口的动态代理----JDK动态代理 基于类的动态代理--cglib 现在用的比较多的是 javasist 来生成动态代理 . 百度一下javasist 我们这里使用JDK的原生代码来实现,其余的道理都是一样的! 2、环境 接口 package com.nevesettle.dongtai; public interface Userdao { public void addUser(); public void deleteUser(); public void queryUser(); public void updateUser(); } 实现类 package com