nginx+lua实现更灵活的反向代理服务_第1页
nginx+lua实现更灵活的反向代理服务_第2页
nginx+lua实现更灵活的反向代理服务_第3页
nginx+lua实现更灵活的反向代理服务_第4页
nginx+lua实现更灵活的反向代理服务_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Nginx+Lua构建更灵活反向代理服务,产品技术中心余伟,入门Nginxlua反向代理在前后端分离中的应用环境搭建(Openresty),聊些什么?,反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。负载均衡,将大量的请求分摊到多个操作单元上进行执行,例如不同业务的web服务器(集群)、FTP服务器、邮件服务器等,从而共同完成工作任务。Lighttpd(反向代理,负载均衡)Haproxy+Varnish(反向代理,负载均衡)LVS(负载均衡)Nginx(反向代理,负载均衡),Lighttpd,Lighttpd是一个德国人领导的开源Web服务器软件,Lighttpd是众多OpenSource轻量级的webserver中较为优秀的一个。具有非常低的内存开销cpu占用率低效能好以及丰富的模块(前端缓存模块等)高并发和稳定性上不如nginx,Haproxy+Varnish,Lighttpd是一个德国人领导的开源Web服务器软件,Lighttpd是众多OpenSource轻量级的webserver中较为优秀的一个。支持url探活不带cache,需要配合Varnish实现静态页面缓存,LVS,LVS(LinuxVirtualServer),即Linux虚拟服务器,是一个虚拟的服务器集群系统。1998年5月由章文嵩博士(现在淘宝)成立,是开源的,已在官方内核中,广泛使用。LVS集群采用三层结构,其主要组成部分为:负载调度器(LoadBalancer),它是前端机,负责转发客户的请求,而客户认为服务是来自同一个IP地址。服务器池(ServerPool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。共享存储(SharedStorage),它为服务器池提供一个共享的存储区,使服务器池拥有相同内容,提供相同服务。,了解Nginx,Nginx是一款轻量级的Web服务器/负载均衡服务器/代理服务器。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:)使用。其特点是占有内存少,并发能力强,应用广泛。,Nginx进程模式,Nginx一般采用多进程,单Master多WorkerMaster处理外部信号,配置文件以及worker的初始化worker进程采用单线程,非阻塞(Eventloop)来处理客户端请求和响应,Nginx处理Http请求的过程,NGX_HTTP_POST_READ_PHASE=0/读取请求阶段NGX_HTTP_SERVER_REWRITE_PHASE/这个阶段主要是处理全局的(serverblock)的rewriteNGX_HTTP_FIND_CONFIG_PHASE/寻找location配置来执行阶段(HTTP无法介入)NGX_HTTP_REWRITE_PHASE/这个主要处理location的rewriteNGX_HTTP_POST_REWRITE_PHASE/对rewrite转换后的URL结果进行处理的阶段(HTTP无法介入)NGX_HTTP_PREACCESS_PHASE/下一阶段之前的准备NGX_HTTP_ACCESS_PHASE/让HTTP模块判断是否允许这个请求进入Nginx服务器NGX_HTTP_POST_ACCESS_PHASE/向用户发送拒绝服务的错误码,响应上一阶段的拒绝(HTTP无法介入)NGX_HTTP_TRY_FILES_PHASE/try_files指令的处理阶段,如果没有配置try_files指令,则该阶段被跳过;(HTTP无法介入)NGX_HTTP_CONTENT_PHASE/内容处理模块,转发给相应的后端服务器,产生文件内容NGX_HTTP_LOG_PHASE/记录日志处理阶段,具体说明应当是请求完成后,关闭请求时处理,了解下Nginx常用的负载均衡策略,轮询(默认)weight:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如:upstreambakendserver4weight=10;server5weight=10;ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。例如:upstreambakendip_hash;server4:88;server5:80;fair(第三方模块,本身不支持):按后端服务器的响应时间来分配请求,响应时间短的优先分配。例如:upstreambackendserverserver1;serverserver2;fair;url_hash(第三方模块,本身不支持):按访问url的hash结果来分配请求例如:upstreambackendserversquid1:3128;serversquid2:3128;hash$request_uri;hash_methodcrc32;,什么是lua,噜啊,Lua是一种脚本编程语言,于1994年,由巴西里约热内卢天主教大学的研究人员设计开发,“Lua”这个名字是葡萄牙语单词“月亮”。Lua最引人注目的特点:极小的体积和简单的语法提供相对全面的功能。简洁的API实现与宿主语言最方便的接口。与平台无关几乎运行于所有的系统。,Lua常用指令,Lua常用指令,Lua常用指令,Lua应用控制,通过不同的ip做不同的控制,Lua应用控制,内部请求控制跳转,Lua应用控制,获取get和post参数以实现控制访问memcached访问redis访问mysql。,Openresty在前后端分离中的应用,环境搭建,一、安装依赖的插件库readline、pcre、openssl。相关库安装成功。安装成功后会有“Complete!”字样二、安装OpenResty从官网下载安装包并解压:/en/./configure-prefix=/opt/openresty-with-luajit-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论