代理服务器

HTTP探索之初学乍练

戏子无情 提交于 2020-03-03 08:02:36
一、什么是HTTP? Hypertext Transfer Protocol(HTTP)协议(RFC7230) 一种无状态的、应用层、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。 二、HTTP请求行与响应行 请求行格式(ABNF方式描述) Request-line = method SP request-target SP HTTP-version CRLF HTTP常见方法(RFC7231) GET:主要的获取信息方法,大量的性能优化都针对该方法,幂等方法 HEAD:类似GET方法,但服务器不发送BODY,用以获取HEAD元数据,幂等方法 POST:常用于提交HTML FORM表单、新增资源等 PUT:更新资源,带条件时是幂等方法 DELETE:删除资源,幂等方法 CONNECT:建立tunnel隧道 OPTIONS:显示服务器对访问资源支持的方法,幂等方法 TRACE:回显服务器收到的请求,用于定位问题。有安全风险 Request-target origin-form:后端请求资源的路径,为空时传递/ absolute-form:用于正向代理 authority-form:用于CONNECT方法 asterisk-form:用于OPTIONS方法 HTTP-version 版本号发展历史 HTTP/0.9:只支持GET

Nginx原理

橙三吉。 提交于 2020-03-02 12:07:03
1. nginx基本介绍   1、nginx高并发原理( 多进程+epoll实现高并发 )       1. Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。       2. 每个子进程只有一个线程,采用的 IO多路复用模型epoll,实现高并发。   2、epoll能实现高并发原理       1. epoll() 中内核则维护一个链表,epoll_wait 方法可以获取到链表长度,不为0就知道文件描述符准备好了。       2. 在内核实现中 epoll 是根据每个 sockfd 上面的与设备驱动程序建立起来的回调函数实现的。       3. 某个 sockfd 上的事件发生时,与它对应的回调函数就会被调用,来把这个 sockfd 加入链表,其他处于“空闲的”状态的则不会。       4. epoll上面链表中获取文件描述,这里使用内存映射(mmap)技术, 避免了复制大量文件描述符带来的开销        内存映射(mmap) :内存映射文件,是由一个文件到一块内存的映射,将不必再对文件执行I/O操作   3、nginx和apache比较     1)nginx相对于apache的优点         1. 轻量级,同样起web 服务,比apache 占用更少的内存及资源         2. 抗并发,nginx

request的cache-control和response cache-control不同点

喜欢而已 提交于 2020-02-28 12:22:53
HTTP协议中,关于一些头域的解释很模糊,网上的解释有些甚至是打架的,例如cache-control:no-cache,为了搞清这个头,google了不少资料,但很多都是各有各说法,甚至相互矛盾。http header中cache-control无疑是非常重要的一个头,往往涉及到性能问题,缓存,缓存代理等等都无法避免跟cache-control打交道。当然还有其他一些头域如last-modified,但它们含义都非常明确,至少没有cache-control那么含糊。 就连浏览器之间,对cache-control也有不同的理解,导致了对这个头的不同的表现。 网上很多关于cache-control的资料写得很模糊,我觉得很多都没有,或者可能是忽略了几个地方,使得我们看着这些资料的时候,似懂非懂。或者作者觉得某些地方足够容易理解,所以根本不觉得需要强调,但正是这些被忽略掉的“前提条件”令我们即使看完资料,也很难弄懂问题。那些对cache-control进行解释的资料通常会忽略的一些"前提条件"有这几个: 1.cache-control是出现在response还是request中。很多资料在解释cache-control时候,都没有指明是response中的cache-control(也就是由服务器应答时发送的cache-control)还是request中的cache-control

Linux Nginx服务器反向代理

别说谁变了你拦得住时间么 提交于 2020-02-27 12:54:30
一、代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务器接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。 举个例子: 代理 就如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户。 1.1 为什么要使用代理服务器? (1)提高访问速度: 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。 (2)防火墙作用: 由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。 (3)通过代理服务器访问不能访问的的目标站点: 互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点。 1.2 什么是正向代理? 一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。 正向代理总结就一句话:代理端代理的是客户端。 正向代理最大的特点就:

Nginx + Tomcat

好久不见. 提交于 2020-02-26 00:07:36
文章目录 一、Nginx 负载均衡实现原理 (1)Nginx 静态处理优势 (2)Tomcat 主要目录 (3)Nginx 应用 (4)动静分离原理 二、实验案例 第一步:搭建 Nginx 第二步:部署两台 Tomcat 第三步:Tomcat 中创建测试页面 第四步:修改 Nginx 配置文件,添加服务器池 第五步:客户端测试 一、Nginx 负载均衡实现原理: Nginx 实现负载均衡是通过反向代理来实现的。 (1)Nginx 静态处理优势 Nginx 处理静态页面的效率远高于 Tomcat 的处理能力; 如果 Tomcat 的请求量为 1000次,则 Nginx 的请求量为 6000次; Tomcat 每秒的吞吐量为 0.6 M,Nginx 的每秒吞吐量为 3.6M; Nginx 处理静态资源的能力是 Tomcat 处理的6倍,优势很大。 (2)Tomcat 主要目录 bin:存放启动和关闭Tomcat脚本 conf:存放Tomcat不同的配置文件 doc:存放Tomcat文档 lib/japser/common:存放Tomcat运行需要的库文件 logs:存放Tomcat执行时的LOG文件 src:存放Tomcat的源代码 webapps:Tomcat的主要Web发布目录 work:存放jsp编译后产生的class文件 (3)Nginx 应用 1、nginx是一款非常优秀的

nginx---基础介绍

懵懂的女人 提交于 2020-02-25 23:58:52
转自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx的产生 没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。 Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多有点:稳定、开源、跨平台等等。但是由于它出现的时间太长了。它兴起的年代,互联网产业远比不上现在。所以它被设计为一个重量级的。不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。 这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。 俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间

给 iTerm 终端设置代理

廉价感情. 提交于 2020-02-23 14:13:51
本文介绍如何为自己的终端设置代理,从而实现在命令行中访问Google。 1. 背景 当你使用SS FQ时,大部分浏览器都可以成功访问Google,但是在命令行下执行 curl https://www.google.com 时,会超时失败。对于类似的这种情况,本文将解释出现这种现象的原因,并给出有效的解决方案。 2. 原因 启动SS时,会创建两个代理,一个是ss-local,一个是privoxy;ss-local用于代理socks5请求,privoxy用于代理所有的HTTP请求 启动SS时,不管用PAC模式还是全局模式,都会修改网络系统代理设置 网络系统代理设置从哪里看?Mac:系统偏好设置-->网络-->高级-->代理 在代理页中可以看到 从上图可以看到,网页代理服务器是一个部署在本地的代理服务器 这个本地代理服务器实际上是SS启动时创建的,我们可以从SS的HTTP代理设置中看到 大部分浏览器的默认代理设置是 系统代理 因此浏览器访问 https://www.google.com 时,实际上是把请求发送给了SS创建的本地代理服务器 127.0.0.1:1087 上图的 privoxy 就是SS创建的本地HTTP代理服务器 127.0.0.1:1087 privoxy会 把接收到的http/https请求转换为socks5请求 ,并转发给本地的ss-local服务,ss

知识点:正向代理与反向代理区别

≯℡__Kan透↙ 提交于 2020-02-23 01:52:35
正向代理    正向代理类似一个跳板机,代理访问外部资源。 举个例子:   我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。    客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。 类似于下配置IP和端口等 重点: 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 正向代理的用途:   (1)访问原来无法访问的资源,如google (2) 可以做缓存,加速访问资源   (3)对客户端访问授权,上网进行认证   (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 反向代理    初次接触方向代理的感觉是,客户端是无感知代理的存在的,反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。  

nginx入门

ⅰ亾dé卋堺 提交于 2020-02-22 03:11:53
最新有个新需求就是访问炼铁19环境的需求。因为19环境无法通过vpn访问,对于现阶段远程运维及办公带来了不便。架构组决策通过路由转发的模式,通过91的特定端口访问19炼铁,方便简单的解决正常访问19炼铁的需求。 一、需求解决方案 具体实现的部署非常简单,就是在91的nginx配置增加server的转发。 /etc/nginx/conf.d/nginx-web.conf server{ listen 1980; #端口 server_name 10.26.10.91; #域名 location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.27.16.241:5007; root /login/login.html; #非必须,不加也可以正常访问炼铁 } } proxy_pass http://10.27.16.241:5007–这个地址是19炼铁的映射地址 对于nginx又陌生又熟悉,需要系统的简单学习一下。 今天入门学习了一下: 二、nginx简介 首先看nginx能做什么? 反向代理、负载均衡、HTTP服务器(动静分离)、正向代理 从nginx可以实现的功能来看

jmeter代理服务器

[亡魂溺海] 提交于 2020-02-21 17:41:01
此jmeter使用版本为apache-jmeter-5.2.1 此代理服务器通俗理解就是用于jmeter录制脚本 步骤如下: 1.添加–>线程–>线程组(最好自己命名,这样方便区分) 2.添加–>非测试元件–>http代理服务器;(当然你也可以通过模板–>Recording来创建) 3.设置代理服务器端口号(自定义端口号)–>选择目标控制器(选择用于接收请求的线程组) 4.打开火狐浏览器–>选择–>找到网络—>设置手动代理配置 5.点击启动-点击ok-返回浏览器即可进行录制了,录制成功后返回线程组查看即可 ** 以上是web设置的过程,下面说一下APP代理的设置 ** == 关于代理,说一句,一定是要在同一局域网内 == 所以我们设置代理前,一定要查看手机与电脑是否连接一致,下面开始设置: 1.查询电脑ip地址 2.手机上配置代理–输入ip地址与之前设置的端口号 3.回到jmeter代理服务器—点击开始–在手机上操作app请求后都会在线程组进行展示,点击对应的请求进行查看即可 注释:如有疑问或需探讨的地方请联系~谢谢,最后app在录制完后记得把配置的代理关掉哦,不然无法连接网络的 来源: CSDN 作者: tf小赖 链接: https://blog.csdn.net/weixin_41201587/article/details/104426204