nginx upstream 机制

nginx upstream 的主要功能是请求服务器的请求,返回给客户端。

一下是效果:请求 192.168.2.102 的/test 得到如下效果:


192.168.2.102 的配置文件 添加一个location 


mytest 就是《深入理解nginx内核》第5章的例子,但是原来的例子不能跑,因为原来的例子是访问google的,对于天朝程序员来说,google不能被访问了,所以不能跑,并且参数方面也有些问题。

所以需要修改一下: 修改上游IP地址

    //这里的上游服务器就是www.google.com
    static struct sockaddr_in backendSockAddr;
    struct hostent *pHost = gethostbyname((char*) "www.baidu.com");
   

修改请求buffer: 不需要参数 注意格式不能有多余空格 否则不能解析。

static ngx_str_t backendQueryLine =
        ngx_string("GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n");
    ngx_int_t queryLineLen = backendQueryLine.len;

指向末尾和拷贝到内存中
b->last = b->pos + queryLineLen;
ngx_memcpy(b->pos,(char*)backendQueryLine.data, queryLineLen );

为什么要改成这样,是根据http协议来的 GET /表示请求主页。host connection 不能省略

connection:close 表示客户端得到请求就关闭连接节省资源。

问题定位:

当程序不能运行时候 就只有抓包看一下。 网络程序不要想打印解决问题。 抓包总结如下:

第一次 在本机直接访问www。baidu.com  抓包报文如下:


第二次在192.168.2.102 里面进行抓包:

开始请求访问字出现了错误,格式不对 导致不能正确解析。修正后OKle 









  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值