正向代理:
客户端非常明确要访问的服务器地址;
服务器只清楚请求来自哪个代理服务器;
而不清楚来自哪个具体的客户端;
正向代理模式屏蔽或者隐藏了真实客户端信息;
反向代理:
多个客户端给服务器发送的请求, Nginx服务器接收到之后;
按照一定的规则分发给了后端的业务处理服务器进行处理了;
此时, 请求的来源也就是客户端是明确的;
但是请求具体由哪台服务器处理的并不明确了;
Nginx扮演的就是一个反向代理角色;
服务器处理流程
- 服务器监听传入连接.
- 客户端连接到服务器.
- 服务器接受连接并处理输入.
- 服务器响应客户端.
socket的IO复用
IO复用异步非阻塞程序使用经典的Reactor模型,Reactor顾名思义就是反应堆的意思,它本身不处理任何数据收发。只是可以监视一个socket(也可以是管道、eventfd、信号)句柄的事件变化。
Reactor只是一个事件发生器,实际对socket句柄的操作,如connect/accept、send/recv、close是在callback中完成的。
安装libevent依赖:参考如下-这是workman扩展安装的参考
http://doc.workerman.net/install/install.html
相关代码参见:
https://github.com/masterzcw/nginx/tree/master/0731