代理服务器

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操作

HTTP协议及请求/响应模型

拥有回忆 提交于 2020-03-10 05:57:43
1、上网的整个过程   假设我们点击了某网页上的一个链接,指向 清华大学院系设置 ,其URL是: http://www.tsinghua.edu.cn/chn/yxsz/index.html 。我们来分析一下整个过程: 浏览器分析链接指向页面的URL 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址 DNS系统解析出清华大学服务器的地址是166.111.4.100 浏览器与服务器建立TCP连接 浏览器发出取文件命令: GET /chn/yxsz/index.html 服务器www.tsinghua.edu.cn给出响应,把文件index.html返回给浏览器 释放TCP连接 浏览器解析并显示“清华大学院系设置”文件index.html中的内容 2、HTTP协议   Internet的基本协议是TCP/IP协议,目前广泛使用的FTP、HTTP协议都是基于TCP/IP的,HTTP是Web应用使用最主要的协议。   HTTP基于请求响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户端信息和内容的类似MIME的消息结果。服务器则返回一个状态行作为响应,内容包括消息协议的版本、成功或失败编码加上包含服务器信息、实体元信息以及可能的实体内容。   HTTP协议是 无状态 的

ssh反向代理设置

£可爱£侵袭症+ 提交于 2020-03-09 12:30:06
一、功能描述: 通过ssh反向代理服务器使得没有公网ip的Linux服务器可以被外网访问。 1、实验主机ip: (1)终端1(192.168.1.101):在局域网内,可以访问外网,无公网ip (2)终端2(192.168.1.102):在局域网内,可以访问外网,无公网ip (3)反向代理服务器(58.23.223.90):具有公网ip,可以从互联网访问 2、实验步骤: (1)通过ssh登陆终端1并且执行如下命令: ssh -fCNR 12000:localhost:22 -p 22 -i ./test.key test@58.23.223.90 说明:反向代理服务器是密钥登陆方式,test.key是私钥。 执行完上述命令后,在反向代理服务器上执行:netstat -anlp |grep 12000命令会有如下结果: netstat -anlp |grep 12000 tcp 0 0 127.0.0.1:12000 0.0.0.0: LISTEN 6907/sshd tcp 0 0 ::1:12000 ::: LISTEN 6907/sshd (2)通过ssh登陆终端2并且执行如下命令: ssh -fCNR 12001:localhost:22 -p 22 -i ./test.key test@58.23.223.90 说明:反向代理服务器是密钥登陆方式,test.key是私钥。

Jmeter学习(九)使用代理录制Jmeter脚本

感情迁移 提交于 2020-03-06 21:38:32
这一节先介绍下对于Jmeter自带的脚本录制方法 使用代理录制Jmeter脚本 首先,Jmeter脚本是以JMX格式为主 那怎么样通过jmeter来录制脚本呢, 录制脚本前,我们只要启动好代理,手动通过IE或者火狐来录制,录制完停止代理。 上面的是思路,下面这边就启动下代理,启动代理前需要设置Jmeter一些配置需求 1.首先先创建一个线程组 2.在该线程组当中创建一个 Http请求默认值 3.在添加的http请求默认值中设置你要录制的服务器IP地址或者域名 4.添加好需要录制的域名或者IP后,在工作台中添加“HTTP代理服务器” 5.添加好代理服务器后,目标控制器 指定在线程组下,代理服务器的默认端口为8080,只要不跟本机的其他端口冲突即可,否则录制不到jmeter脚本 也可以通过cmd命令窗口查看运行的端口是否存在8080 6.然后在代理服务器中过滤掉我们不要录制的内容或者只录制的内容,正则表达式: .*\.gif 7.添加需要录制的内容后,点击启动Jmeter代理 8.然后打开IE浏览器设置本机的代理,注意端口要一致,如果是其他机器的,请修改IP地址。注意两台机器都要有jmeter IE浏览器设置代理,Internet选项——连接——局域网设置 设置好之后,点击确定,如果是首次配置会出现缺少证书,需要安装下 按照上面的步骤安装完成之后,在IE浏览器上输入需要测试的网站名称

jmeter简单录制脚本

强颜欢笑 提交于 2020-03-06 21:37:36
1 创建HTTP请求默认值。 --添加线程组:右击"测试计划"→添加→Threads(Users)→线程组, 建议重命名线程组增强可读性。 --添加HTTH请求默认值:右击"XX线程组"→添加→配置元件→添加HTTP请求默认值。 2 配置HTTP请求默认值 3 添加HTTP代理服务器。 --右击"工作台"→添加→非测试元件→HTTP代理服务器(HTTP(S) Test Script Recorder)。 注:HTTP(S) Test Script Recorder(教新版本)= HTTP Proxy Server (老版本) 4 启动Internet Explore(示例),但不关闭JMeter。 配置浏览器代理。 --在IE浏览器中点击工具--Internet选项--连接--局域网设置--选中"为LAN使用代理服务器"。 --输入地址和端口。地址:localhost或本机的IP;端口:8088。 --最后依次点击"确定"。 5 操作被访问JMeter界面。关闭浏览器,将视线转回JMeter窗口上。 6 添加"查看结果树"。 --右击"XX线程组"→添加→监.听器→查看结构树。 --点击"启动"(Ctrl+R)按钮查看运行结果 7 添加"聚合报告" --右击"XX线程组"→添加→监.听器→查看结构树。 --点击"启动"(Ctrl+R)按钮查看运行结果 来源: https://www

代理 正反向代理

旧城冷巷雨未停 提交于 2020-03-05 22:55:46
代理服务技术是一门很古老的技术概念,在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,达到代理的目的。 正向代理( forward proxy ) 一般常用的就是正向代理,如下图,正向代理就是一个位于请求者A和被请求者B之间的服务器C,为了从原始服务器B取得内容,用户A向代理服务器C发送一个请求并指定目标(服务器B),然后代理服务器C向被请求者服务器B转交请求并将获得的内容返回给请求者。客户端必须要进行一些特别的设置才能使用正向代理 正向代理简单来说就是 替代请求者访问方目标服务器 ,这样显然就能想到正向代理在不同环境下代理的2个作用: 对于请求者A来说,如果A由于种种原因无法访问B,需要第三方C做桥梁,能够破除了访问路径的限制,比如vpn网关,翻墙。 对于服务器B来说,由于距离请求者太远、路由表不稳定和复杂等原因,不能提供质量佳的服务,使用中间代理C提供一个中间节点,减少A和B之间的路由,降低了访问延迟,同时如果代理C还能缓存一些常用数据,还能减轻服务器B的资源压力,同时也能给请求者A一个良好的体验。 当然还能有其他的作用了,只要和网络有关的,就能做各种限制和隐藏访问/被访问的身份 反向代理( reverse proxy ) 反向代理就是反过来,实际的服务器B让代理C替代它完成请求的接受,反向代理正好与正向代理相反

Nginx的安装与配置

天大地大妈咪最大 提交于 2020-03-04 21:53:24
Nginx简介 Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。 正向代理 如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们 正向代理的用途: (1)访问原来无法访问的资源,如Google (2) 可以做缓存,加速访问资源 (3)对客户端访问授权,上网进行认证 (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 反向代理 所有客户端发出的请求全部经过Nginx反向代理服务器,再转发给真正的服务器。 逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。 ip_hash

同源策略以及回调地狱和方法

狂风中的少年 提交于 2020-03-04 07:18:51
#同源策略 1 同源策略就是浏览器发送请求给的限制。 触发同源策略的条件:传输协议、域名、端口号,任意一个不一样搜会触发,对于触发同源策略的请求就叫做跨域请求。 2 跨域请求的三种方式 Jsonp跨域请求–src的引入 Cors跨域资源共享,由服务端进行配置,表示允许某一客户端的请求,客户端依旧使用ajax方式进行发送请求。 代理跨域:-浏览器不允许、非同源的请求。 (1)Jsonp中 ① script标签会把请求回来的所有内容当做js代码执行 ② Script标签默认有type属性,值是text/javascript,不管src请求什么文件,都会把文件里的内容当做字符串读取。 ③ Script标签放入src属性不受同源策略的影响。 ④ Jsonp.php中,只要有php标签对,就会按照php代码解析,没有php标签,就会按照字符串交给script标签。 (2)Cors跨越 Cors跨越是浏览器不让我们请求其他服务器,如果其他服务器告知浏览器可以请求,那么才不会阻止。 <?php // 以下三个可以实现cors的跨域请求,资源共享 header("Access-Control-Allow-Origin:*");//允许哪些域名请求 header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS");/

正向代理与反向代理

我与影子孤独终老i 提交于 2020-03-03 18:30:01
关于Nginx的介绍:https://www.cnblogs.com/wcwnina/p/8728391.html 正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式 屏蔽或者隐藏了真实客户端信息。 客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。 总结来说: 正向代理, "它代理的是客户端,代客户端发出请求" ,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 正向代理的用途: (1)访问原来无法访问的资源,如Google (2) 可以做缓存,加速访问资源 (3)对客户端访问授权,上网进行认证 (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。 反向代理, "它代理的是服务端,代服务端接收请求" ,主要用于服务器集群分布式部署的情况下, 反向代理隐藏了服务器的信息。 反向代理的作用: (1)保证内网的安全

Charles抓包工具过滤网络请求

房东的猫 提交于 2020-03-03 18:12:30
Charles 是一个 HTTP 代理服务器 ,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。 来自百度百科 将 Charles 设置成系统代理 Charles是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。选择菜单中的 “Proxy” -> “Windows Proxy” 来将 Charles 设置成系统代理。如下所示: 之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中。 注意: Chrome 和 Firefox 需要设置成使用系统的代理服务器,或者直接将代理服务器设置成127.0.0.1:8888。 Charles 主界面介绍 Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。可以根据具体的需要在这两种视图之前来回切换。 Structure : 视图将网络请求按访问的域名分类。 Sequence : 视图将网络请求按访问的时间排序。 Charles 提供了简单的 Filter 功能