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

登封快乐送餐在那个网站做的广告营销推广网站

登封快乐送餐在那个网站做的广告,营销推广网站,wordpress 图床 转移,wordpress的官方网站目录 7. 实现一个UDP健康检测功能7.1 功能定义7.2 定义一个新的健康检测类型7.3 增加udp特定的健康检测需要的配置指令7.3.1 ngx_http_upstream_check_srv_conf_s结构体的扩展7.3.2 check_udp_send的实现7.3.3 check_udp_expect的实现7.3.4 16进制解码代码的实现7.4 ngx_http_u…

目录

  • 7. 实现一个UDP健康检测功能
    • 7.1 功能定义
    • 7.2 定义一个新的健康检测类型
    • 7.3 增加udp特定的健康检测需要的配置指令
      • 7.3.1 ngx_http_upstream_check_srv_conf_s结构体的扩展
      • 7.3.2 check_udp_send的实现
      • 7.3.3 check_udp_expect的实现
      • 7.3.4 16进制解码代码的实现
    • 7.4 ngx_http_upstream_check函数的修改
    • 7.5 ngx_http_upstream_check_connect_handler函数的修改
    • 7.6 ngx_http_upstream_check_udp_init函数实现
    • 7.7 ngx_http_upstream_check_udp_parse函数实现
    • 7.7 ngx_http_upstream_check_udp_reinit函数实现
    • 7.8 测试验证

本篇对ngx_http_upstream_check_module的源码进行扩展,来实现udp健康检查功能。

-关于配置和使用部分可以查看上篇:nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析(上)
-关于源码分析部分可以查看中篇:nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析(中)添加链接描述

7. 实现一个UDP健康检测功能

7.1 功能定义

  • 支持后端UDP请求定义
  • 支持通过nginx配置发送一个用户自定义的请求包
  • 支持通过nginx配置希望从上游服务器响应的报文内容,通过比对实际响应内容和希望的响应内容来判断上游服务器是否正常
  • 允许配置的希望响应报文内容部分匹配就认为OK
  • 允许用text字符串或者16进制编码的方式来设置请求报文内容和响应报文内容

7.2 定义一个新的健康检测类型

static ngx_check_conf_t  ngx_check_types[] = {
......{ NGX_HTTP_CHECK_UDP,ngx_string("udp"),ngx_null_string,0,ngx_http_upstream_check_send_handler,ngx_http_upstream_check_recv_handler,ngx_http_upstream_check_udp_init,ngx_http_upstream_check_udp_parse,ngx_http_upstream_check_udp_reinit,1,0 },
......
这里定义了名称为udp的新的健康检测类型,其中ngx_http_upstream_check_send_handler和ngx_http_upstream_check_recv_handler两个回调函数是复用原先的实现的,而ngx_http_upstream_check_udp_init、ngx_http_upstream_check_udp_parse和ngx_http_upstream_check_udp_reinit是需要后面重新来实现的。这几个函数的实现留待后面来阐述。其中NGX_HTTP_CHECK_UDP定义为:
	#define NGX_HTTP_CHECK_UDP                   0X0020

7.3 增加udp特定的健康检测需要的配置指令

static ngx_command_t  ngx_http_upstream_check_commands[] = {
......{ ngx_string("check_udp_send"),NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1,ngx_http_upstream_check_udp_send,0,0,NULL },{ ngx_string("check_udp_expect"),NGX_HTTP_UPS_CONF|NGX_CONF_TAKE12,ngx_http_upstream_check_udp_expect,0,0,NULL },
......
}

7.3.1 ngx_http_upstream_check_srv_conf_s结构体的扩展

为了保存解析到的配置信息,需要对ngx_http_upstream_check_srv_conf_s结构体进行扩展,增加4个字段,定义如下:

struct ngx_http_upstream_check_srv_conf_s {ngx_uint_t                 port;ngx_uint_t                 fall_count;ngx_uint_t                 rise_count;ngx_msec_t                 check_interval;ngx_msec_t                 check_timeout;ngx_uint_t                 check_keepalive_requests;ngx_check_conf_t          *check_type_conf;ngx_str_t                  send;union {ngx_uint_t             return_code;ngx_uint_t             status_alive;} code;ngx_array_t               *fastcgi_params;ngx_uint_t                default_down;ngx_uint_t                unique;ngx_uint_t                udp : 1;       /* 是否udp socket */ngx_int_t                 match_part : 1; /* 是否只要部分匹配就可以了 */ngx_int_t                 match_offset; /* udp响应期望的内容从哪个字节开始匹配 */ngx_str_t                 expect;   /* udp响应的期望内容 */
};

7.3.2 check_udp_send的实现

check_udp_send配置指令用来读取准备发送到上游服务器的报文内容,格式如下:
   check_udp_send [raw:|text:]packet   
如果指定了raw格式,那么packet中的内容就是用16进制编码的报文,如果用text格式,那么packet内容就是一个普通的字符串,如果没有指定raw或者text,那么默认是text格式。下面来实现check_udp_send配置指令的解析函数ngx_http_upstream_check_udp_send函数:

static char *ngx_http_upstream_check_udp_send(ngx_conf_t *cf,ngx_command_t *cmd, void *conf)
{ngx_str_t                           *value;ngx_http_upstream_check_srv_conf_t  *ucscf;ngx_str_t                            tmp;ngx_str_t                            content;ngx_int_t                            r;value = cf->args->elts;ucscf = ngx_http_conf_get_module_srv_conf(cf,ngx_http_upstream_check_module);/* 如果是text格式,直接取text:后的字符内容即可 */if (value[1].len > 5 && ngx_strncmp(value[1].data, "text:", 5) == 0) {ucscf->send.data = value[1].data + 5;ucscf->send.len  = value[1].len - 5;} /* 如果是raw格式,则需要进行16进制的解码 */else if(value[1].len > 4 && ngx_strncmp(value[1].data, "raw:", 4) == 0) {
http://www.ds6.com.cn/news/31313.html

相关文章:

  • 公司转让一般在什么网seo搜索引擎优化期末及答案
  • 做app网站建设seo 服务
  • 哪些网站可以做兼职靠谱的友情链接搜读
  • 合肥的网站建设剂屏夫唯seo
  • 做网站襄樊西安百度竞价托管代运营
  • 北京网站建设方案飞沐淘宝指数查询
  • 政府网站编辑的要求网络推广运营优化
  • 做网站的公司什么动力seo博客网址
  • 烟台h5网站制作公司网络热词2021流行语
  • 口碑营销5t理论企业网站关键词优化
  • python 做网站 套件信息流推广渠道
  • 怎么弄百度网站合肥seo推广排名
  • 爱尚网站建设市场营销策划方案范文
  • 网页设计作业宽度1366768seo优化关键词排名
  • 高仿做的最好的网站营销咨询服务
  • 网站开发工程师考试重庆seo排名优化费用
  • 做的好的装修公司网站南京网站设计公司
  • 浙江做电缆桥架的公司网站深圳seo公司
  • 平潭建设局网站今日新闻大事
  • wordpress 微信 主题制作长春百度seo公司
  • 贵阳两学一做网站知乎关键词排名优化
  • 台州黄岩住房和城乡建设网站营销托管全网营销推广
  • 口碑好的网站建设哪家好深圳居家办公
  • 做宣传单页的网站上海seo外包
  • 公司网站建设知乎网络营销策划目的
  • 沧州做网站费用百度推广营销方案
  • 商城网站建设合同济南seo优化公司
  • 河南免费网站建设什么是关键词推广
  • 摄影网站建设策划书关键词排名优化怎么样
  • 沈阳建设网站百度指数对比