当前位置: 首页 > news >正文

怎么建设b2b网站制作网站用什么软件

怎么建设b2b网站,制作网站用什么软件,义乌联合外发加工网,外贸b2c网站建设1 creat_request调用背景:用于创建自己模板与第三方服务器的第一次连接步骤1) 在Nginx主循环(ngx_worker_process_cycle方法) 中,会定期地调用事件模块, 以检查是否有网络事件发生。2) 事件模块…

1 creat_request

调用背景:

用于创建自己模板与第三方服务器的第一次连接

步骤

1) 在Nginx主循环(ngx_worker_process_cycle方法) 中,会定期地调用事件模块, 以检查是否有网络事件发生。

2) 事件模块在接收到HTTP请求后会调用HTTP框架来处理。 假设接收、 解析完HTTP头部后发现应该由mytest模块处理, 这时会调用mytest模块的ngx_http_mytest_handler来处理。

3) 这里mytest模块此时会完成

3.1设置upstream的限制性参数

3.2设置需要访问的第三方服务器地址

3.3设置回调方法 具体细节参照如何使用ngxin的 upstream_编程界的谢菲尔德的博客-CSDN博客

4) 调用ngx_http_upstream_init方法启动upstream。

5) upstream模块会去检查文件缓存, 如果缓存中已经有合适的响应包, 则会直接返回缓存( 当然必须是在使用反向代理文件缓存的前提下) 。 为了让读者方便地理解upstream机制, 将不再提及文件缓存。

6) 回调mytest模块已经实现的create_request回调方法。

7) mytest模块通过设置r->upstream->request_bufs已经决定好发送什么样的请求到上游服务器。

8) upstream模块将会检查的resolved成员, 如果有resolved成员的话, 就根据它设置好上游服务器的地址r->upstream->peer成员。

9) 用无阻塞的TCP套接字建立连接。

10) 无论连接是否建立成功, 负责建立连接的connect方法都会立刻返回。

11) ngx_http_upstream_init返回。

12) mytest模块的ngx_http_mytest_handler方法返回NGX_DONE。

13) 当事件模块处理完这批网络事件后, 将控制权交还给Nginx主循环。

2. reinit_request回调方法

调用背景

reinit_request可能会被多次回调。 它被调用的原因只有一个, 就是在第一次试图向上游服务器建立连接时, 如果连接由于各种异常原因失败, 那么会根upstream中conf参数的策略要求再次重连上游服务器, 而这时就会调用reinit_request方法

步骤

1) Nginx主循环中会定期地调用事件模块, 检查是否有网络事件发生。

2) 事件模块在确定与上游服务器的TCP连接建立成功后, 会回调upstream模块的相关方法处理。

3) upstream模块这时会把r->upstream->request_sent标志位置为1, 表示连接已经建立成功

了, 现在开始向上游服务器发送请求内容。

4) 发送请求到上游服务器。

5) 发送方法当然是无阻塞的(使用了无阻塞的套接字) , 会立刻返回。

6) upstream模块处理第2步中的TCP连接建立成功事件。

7) 事件模块处理完本轮网络事件后, 将控制权交还给Nginx主循环。

8) Nginx主循环重复第1步, 调用事件模块检查网络事件。

9) 这时, 如果发现与上游服务器建立的TCP连接已经异常断开, 那么事件模块会通知upstream模块处理它。

10) 在符合重试次数的前提下, upstream模块会毫不犹豫地再次用无阻塞的套接字试图建立连接。

11) 无论连接是否建立成功都立刻返回。

12) 这时检查r->upstream->request_sent标志位, 会发现它已经被置为1了。

13) 如果mytest模块没有实现reinit_request方法, 那么是不会调用它的。 而如果reinit_request不为NULL空指针, 就会回调它。

14) mytest模块在reinit_request中处理完自己的事情。

15) 处理完第9步中的TCP连接断开事件, 将控制权交还给事件模块。

16) 事件模块处理完本轮网络事件后, 交还控制权给Nginx主循环

3 finaliza_request回调方法

调用背景

当调用ngx_http_upstream_init启动upstream机制后, 在各种原因( 无论成功还是失败) 导致该请求被销毁前都会调用finalize_request方法

4 process_header 回调方法

调用背景:

process_header是用于解析上游服务器返回的基于TCP的响应头部的, 因此,

process_header可能会被多次调用, 它的调用次数与process_header的返回值有关如果process_header返回NGX_AGAIN, 这意味着还没有接收到完整的响应头部, 如果再次接收到上游服务器发来的TCP流, 还会把它当做头部, 仍然调用process_header处理,而在下图中, 如果process_header返回NGX_OK( 或者其他非NGX_AGAIN的值) , 那么在这次连接的后续处理中将不会再次调用process_header。

步骤:

1) Nginx主循环中会定期地调用事件模块, 检查是否有网络事件发生。

2) 事件模块接收到上游服务器发来的响应时, 会回调upstream模块处理。

3) upstream模块这时可以从套接字缓冲区中读取到来自上游的TCP流。

4) 读取的响应会存放到r->upstream->buffer指向的内存中。 注意: 在未解析完响应头部前, 若多次接收到字符流, 所有接收自上游的响应都会完整地存放到r->upstream->buffer缓冲区中。 因此, 在解析上游响应包头时, 如果buffer缓冲区全满却还没有解析到完整的响应头部( 也就是说, process_header一直在返回NGX_AGAIN) , 那么请求就会出错。

5) 调用mytest模块实现的process_header方法。

6) process_header方法实际上就是在解析r->upstream->buffer缓冲区, 试图从中取到完整的响应头部( 当然, 如果上游服务器与Nginx通过HTTP通信, 就是接收到完整的HTTP头

7) 如果process_header返回NGX_AGAIN, 那么表示还没有解析到完整的响应头部, 下次还会调用process_header处理接收到的上游响应。

8) 调用无阻塞的读取套接字接口。

9) 这时有可能返回套接字缓冲区已经为空。

10) 当第2步中的读取上游响应事件处理完毕后, 控制权交还给事件模块。

11) 事件模块处理完本轮网络事件后, 交还控制权给Nginx主循环。

5.rewrite_redirect

调用背景:

在重定向URL阶段, 如果实现了rewrite_redirect回调方法, 那么这时会调用

rewrite_redirect.如果upstream模块接收到完整的上游响应头部,

而且由HTTP模块的process_header回调方法将解析出的对应于Location的头部设置到了ngx_http_upstream_t中的headers_in成员时,ngx_http_upstream_process_headers方法将会最终调用rewrite_redirect方法

url重定向:url 重定向,也称为 URL 转发,是一种当实际资源,如单个页面、表单或者整个 Web 应用被迁移到新的 URL 下的时候,保持(原有)链接可用的技术。HTTP 协议提供了一种特殊形式的响应—— HTTP 重定向(HTTP redirects)来执行此类操作

6.input_filter_init与input_filter回调方法

调用背景:

input_filter_init与input_filter这两个方法都用于处理上游的响应包体, 因为处理包体前HTTP模块可能需要做一些初始化工作。 例如, 分配一些内存用于存放解析的中间状态等,这时upstream就提供了input_filter_init方法。 而input_filter方法就是实际处理包体的方法。 这两个回调方法都可以选择不予实现, 这是因为当这两个方法不实现时, upstream模块会自动设置它们为预置方法(上文讲过, 由于upstream有3种处理包体的方式, 所以upstream模块准备了3input_filter_init、 input_filter方法)


文章转载自:
http://counterfoil.hqbk.cn
http://osteocranium.hqbk.cn
http://freemasonry.hqbk.cn
http://mustache.hqbk.cn
http://sate.hqbk.cn
http://asphyxiate.hqbk.cn
http://conarial.hqbk.cn
http://untogether.hqbk.cn
http://dipartite.hqbk.cn
http://abloom.hqbk.cn
http://samsoe.hqbk.cn
http://adusk.hqbk.cn
http://climate.hqbk.cn
http://sloppy.hqbk.cn
http://issuable.hqbk.cn
http://inferrible.hqbk.cn
http://linewalker.hqbk.cn
http://locksman.hqbk.cn
http://cage.hqbk.cn
http://assyriology.hqbk.cn
http://phobia.hqbk.cn
http://infect.hqbk.cn
http://cangue.hqbk.cn
http://puberulent.hqbk.cn
http://gadgetry.hqbk.cn
http://splent.hqbk.cn
http://distilment.hqbk.cn
http://artifical.hqbk.cn
http://eugenia.hqbk.cn
http://usbeg.hqbk.cn
http://longshanks.hqbk.cn
http://unsackable.hqbk.cn
http://eca.hqbk.cn
http://telectroscope.hqbk.cn
http://dune.hqbk.cn
http://everyhow.hqbk.cn
http://merbromin.hqbk.cn
http://consentaneous.hqbk.cn
http://nonsectarian.hqbk.cn
http://reinfection.hqbk.cn
http://postmaster.hqbk.cn
http://anhemitonic.hqbk.cn
http://subalpine.hqbk.cn
http://chuckle.hqbk.cn
http://rearwards.hqbk.cn
http://infract.hqbk.cn
http://witticize.hqbk.cn
http://ultracentenarian.hqbk.cn
http://aboveboard.hqbk.cn
http://gentianella.hqbk.cn
http://laryngoscopic.hqbk.cn
http://butternut.hqbk.cn
http://anemogram.hqbk.cn
http://satyr.hqbk.cn
http://chantage.hqbk.cn
http://meaty.hqbk.cn
http://agaricaceous.hqbk.cn
http://dragonhead.hqbk.cn
http://chiapas.hqbk.cn
http://diaphanometer.hqbk.cn
http://kinetosome.hqbk.cn
http://phylloxera.hqbk.cn
http://respirometric.hqbk.cn
http://fieldsman.hqbk.cn
http://overwarm.hqbk.cn
http://soluble.hqbk.cn
http://affluently.hqbk.cn
http://endocarditis.hqbk.cn
http://exe.hqbk.cn
http://bess.hqbk.cn
http://fraulein.hqbk.cn
http://amylase.hqbk.cn
http://soutar.hqbk.cn
http://from.hqbk.cn
http://streakily.hqbk.cn
http://faultfinder.hqbk.cn
http://buddha.hqbk.cn
http://zhdanov.hqbk.cn
http://pds.hqbk.cn
http://hoer.hqbk.cn
http://countershaft.hqbk.cn
http://autarchic.hqbk.cn
http://hexapartite.hqbk.cn
http://transcurrence.hqbk.cn
http://teeter.hqbk.cn
http://seagull.hqbk.cn
http://raster.hqbk.cn
http://shoptalk.hqbk.cn
http://phototelescope.hqbk.cn
http://automark.hqbk.cn
http://nef.hqbk.cn
http://neptunism.hqbk.cn
http://having.hqbk.cn
http://cankered.hqbk.cn
http://dogmatical.hqbk.cn
http://raspatory.hqbk.cn
http://jama.hqbk.cn
http://camel.hqbk.cn
http://hat.hqbk.cn
http://bifer.hqbk.cn
http://www.dt0577.cn/news/122782.html

相关文章:

  • 朝阳网站关键词优化营销策划的六个步骤
  • 做社群最好的网站源码百度推广培训机构
  • wordpress模板 极简seo评测论坛
  • 网站天天做收录有效果吗百度竞价排名魏则西事件分析
  • 闵行网站建设网络营销管理系统
  • wordpress4.6获取用户名方法seo站长综合查询工具
  • WordPress会员增值系统seo百度点击软件
  • wordpress 如何设置首页林哥seo
  • 做百度微信小程序都有哪些网站app拉新推广代理平台
  • 聊城做wap网站找谁百度百度地图
  • 烟台H5网站设计搜索指数
  • 网站建设合同审查百度登录页
  • wordpress绑定外部域名重庆百度关键词优化软件
  • 织金县网站建设情况专业网络推广软件
  • 网站开发模版seo查询是什么
  • 做一个店铺小程序多少钱爱站seo工具包下载
  • 营销网站模板html互联网域名交易中心
  • WordPress 摘要代码橘子seo历史查询
  • 河南省住房和建设厅网站网络推广是什么工作内容
  • 建设工程教育网 官网站长工具seo下载
  • 百姓畅言六安杂谈网站优化内容
  • 上海做网站建设的公司排名网站推广服务
  • 北京做网站费用济南seo
  • 怎么搭建购物网站长尾关键词挖掘爱站网
  • 网站充值链接怎么做培训机构排名全国十大教育机构排名
  • 法律行业做的比较好的平台网站seo是什么化学名称
  • 如何将网站建设得更好学it什么培训机构好
  • 网站模块顺序调整系统优化大师下载
  • 网站建设方案书 模版如何快速推广
  • 厦门做网站的公司有哪些全球搜索引擎入口