代理服务器

Nginx+uWSGI+Django原理

给你一囗甜甜゛ 提交于 2020-02-05 08:07:13
Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django。而为什么一定要三个结合在一起呢?直接使用Django的runserver来启动服务器进程,或者uWSGI+Django可不可以呢?为什么? 概念说明: APP(应用程序),就是开发者写的应用程序,例如django,bottle这些。记录怎么处理客户端发来的请求的逻辑部分。 WSGI,是一个协议,Python用于Web开发的协议 uWSGI,是一个程序,充当Web服务器或中间件。 如果架构是Nginx+uWSGI+APP,uWSGI是一个中间件 如果架构是uWSGI+APP,uWSGI是一个服务器 uwsgi,是uWSGI程序实现的一个自有的协议。 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi CGI,最早的协议 FCGI,比CGI快 WSGI,Python专用的协议 uwsgi,比FCGI和WSGI都快,是uWSGI项目自有的协议,主要特征是采用二进制来存储数据,之前的协议都是使用字符串,所以在存储空间和解析速度上,都优于字符串型协议. 官方介绍 一、WSGI协议 浏览器请求一个页面的流程: 浏览器发送请求给服务器,包含请求头和请求体 服务器解析请求头和请求体 服务器根据请求信息来处理请求,生成返回内容

正反向代码

时间秒杀一切 提交于 2020-02-04 04:54:18
(1)正向代理和代理服务器 正向代理即通常所说的代理,用于代表内部网络用户向Internet上的服务器(或称外部服务器,通常为Web服务器)发出连接请求,并接收响应结果,执行该代理功能的服务器称为代理服务器。使用代理服务器访问外部网络时,客户端必须在局域网设置中指明代理服务器的地址以及要代理的服务的端口号。 [5] (2)反向代理和代理服务器 反向代理的方向与正向代理相反,指代表外部网络用户向内部服务器发出请求,即接收来自Internet上用户的连接请求,并将这些请求转发给内部网络上的服务器,然后将从内部服务器上得到的响应返回给Internet上请求连接的客户:执行反向代理服务的服务器称为反向代理服务器,反向代理服务器对外部用户表现为一个服务器。 来源: CSDN 作者: kellyangel218 链接: https://blog.csdn.net/kellyangel218/article/details/104155025

Expect:100-Continue & HTTP 417 Expectation

人走茶凉 提交于 2020-02-03 00:41:27
背景: 今天调试火车票查询的代码,发现一个奇怪的事情,如果使用公司本地的代理,那么一切正常,如果使用的是公司台湾的代理,那么将出现以下错误 :“The remote server returned an error.(417) Unkown”。 很是奇怪啊,为什么换了服务器后,效果完全相反。反复查阅代码最终找出关键点,HTTP协议。 1.分析bug的原因 看着VS2010的错误信息: (417) Unkown 。 有一点经验的人就会联想到HTTP200啊,等等之类的东西。那个HTTP协议中的内容那么多,到时是哪一个属性出现的问题呢,我决定用wireshark抓包,进行比较。对比结果:用台湾代理时,抓包的结果中多处了一下字符串 “‍Expect:100-Continue”。( wireshark使用 ) 于是查看关于HTTP1.1的相关网页。 HTTP1.1协议中文版-RFC2616 和 HTTP1.1协议英文版-RFC2616 在上两篇文章中可以看到以下一段描述: The purpose of the 100 (Continue) status (see section 10.1.1 ) is to allow a client that is sending a request message with a request body to determine if the

Nginx——Nginx简介

蓝咒 提交于 2020-01-31 23:52:34
文章目录 1:Nginx介绍 2:反向代理介绍 3:负载均衡介绍 4:动静分离介绍 1:Nginx介绍 Nginx (“engine x”) 是一个 高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强 ( 有报告表明能支持高达 50,000 个并发连接数 ),事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx 网站用户有: 百度、京东、新浪、网易、腾讯、淘宝等 (都是大佬),(可见Nginx对以后分布式的学习也很重要) 下面我们介绍一下Nginx的有关概念 2:反向代理介绍 既然有反向代理,那么肯定有正向代理,事务都是相对的(哈哈哈哈) Nginx 不仅可以做反向代理,实现负载均衡 。还能用作 正向代理来进行上网等功能 。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。 上图就完事了 反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端, 此时反向代理服务器和目标服务器对外就是一个服务器 , 暴露的是代理服务器 地址 , 隐藏了真实服务器 IP 地址。 老铁们,上图 3:负载均衡介绍

jmeter参数设置

左心房为你撑大大i 提交于 2020-01-31 06:57:46
参考链接:http://www.knowsky.com/367353.html JMeter 是一个流行的用于负载测试的开源工具, 具有许多有用的功能元件,如线程组(thread group), 定时器(timer), 和HTTP 取样 (sampler) 元件。 本文是对JMeter 用户手册的补充,而且提供了关于使用Jmeter的一些模拟元件开发质量测试脚本的指导。   本文同时也讨论了一项重要的内容:在指定了精确的响应时间要求后,如何来校验测试结果,非凡是在采用了置信区间分析这种严格的统计方式的情况下应如何操作。请注重,我假定本文的读者们了解关于Jmeter的基础知识,本文的例子基于Jmeter2。0。3版。   确定一个线程组的ramp-up period (Determine)   Jmeter脚本的第一个要素是线程组(Thread Group),因此首先让我们往返顾一下。 正如图一所示,线程组需要设置以下参数:   ·线程数量。   ·ramp-up period。   ·运行测试的次数。   ·启动时间:立即或者预定的时间,假如是后者,线程组所包含的元素也要指定这个起止时间。   图 1。 JMeter 线程组(JMeter Thread Group)   每个线程均独立运行测试计划。因此, 线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载

mysql半同步复制

强颜欢笑 提交于 2020-01-28 15:28:42
MySQL半同步复制概念 用户发请求到代理服务器,代理服务器把请求转到主服务器上,主服器更新数据,把数据复制给从服务器(个数很多),只要有一台从服务器数据更新成功,就立刻告诉主服务器更新数据成功。主服务器立即发请求告诉代理服务器,代理服务器转发请求给客户端,表示成功了。坚锢了数据,确保数据安全。 mysql 半同步复制配置 master – 配置文件 vim /etc/my.cnf [ mysqld ] server_id = # log_bin – 二进制日志 mysql > show master status ; +--------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +--------------------+----------+--------------+------------------+ | mariadb-bin.000003 | 245 | | | +--------------------+----------+--------------+------------------+ – 授权 mysql > grant replication slave on *.* to

图解HTTP 第五章、与HTTP协作的Web服务器

爷,独闯天下 提交于 2020-01-28 05:27:36
5.2 通信数据转发程序:代理、网关、隧道 5.2.1 代理 代理服务器的基本行为就是接受客户端发送的请求后转发给其他服务器。 使用代理服务器的理由有:利用缓存技术减少网络带宽流量,组织内部针对特定网站的访问控制等。 代理按两种基准分类。一种是是否使用缓存,另一种是是否会修改报文。 缓存代理 代理转发响应,缓存代理会预先将资源的复本保存在代理服务器上。当代理再次接受到对相同资源的请求,就可以不从源服务器获取资源,而将之前的缓存资源作为响应返回。 透明代理 转发或响应时,不对报文做任何加工的代理类型。 5.2.2 网关 5.2.3 隧道 按要求建立一条与其他服务器的通信线路,届时使用SSL加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。 隧道本身不会去解析HTTP请求。 来源: CSDN 作者: WindSearcher 链接: https://blog.csdn.net/qq_40511966/article/details/104074684

Jmeter-脚本录制

余生颓废 提交于 2020-01-27 21:59:02
一、使用代理服务器进行录制   1、创建线程组   2、创建http代理服务器   分组解释     不对样本分组:所有请求全部罗列     在组件添加分隔:加入一个虚拟的以分割线命名的动作     每个组放入一个新的控制器:执行时按控制器给输出结果     只存储每个组的第一个样本:保存对于一次url请求     将每个组放入一个新的事务控制器中   IE浏览器设置     设置完成要启动代理服务器,录制完成后要关闭 二、使用Badboy进行录制    badboy是一个强大的工具,旨在帮助测试和开发复杂的动态应用。Badboy包括一个简单而全面的捕获/回放界面,强大的负载测试的支持,详细的报告图片等,从而使Web测试和开发变得更加容易   1、下载地址:https://pan.baidu.com/s/1V61Z4CHrV4S_bJZX1tF8yA 提取码:3tgq   2、安装完成并打开 点击开始录制,按回车健,左边就会捕获到请求。 偶尔会出现脚本发生错误:脚本错误不会影响影响网站浏览,原因是访问者使用的浏览器不能完全支持页面里的脚本,忽略就行。   3、导出到Jmeter并打开          来源: https://www.cnblogs.com/katyhudson/p/12236951.html

nginx基本功能和工作原理

允我心安 提交于 2020-01-27 13:18:40
nginx能做什么 反向代理 正向代理 负载均衡 HTTP服务器(包含动静分离) 反向代理和正向代理 正向代理。简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录。结论就是,正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 反向代理。例如我要访问 localhost:8080/views/test1 这个页面,但view对应的服务器上并没有test1这个资源,它是从另一台服务器上调用的资源。这样view对应的那个服务器就使用了反向代理。即用户只需要把请求发给特定的反向代理服务器,具体请求是谁处理的用户不需要知道(其实也不知道),由代理服务器统一处理。结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器

了解Nginx

孤街浪徒 提交于 2020-01-26 23:15:58
Nginx 的产生 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 工作期间,使用 C 语言开发了 Nginx。 Nginx 作为 Web 服务器一直为 Rambler Media