当你访问淘宝的时候,发生了什么?

大型网站架构

输入图片说明

DNS解析

输入图片说明

CDN 的处理过程

输入图片说明

重定向

客户端向服务器请求资源A,服务器发现A在其他地方,于是返回301 Move Permanently给客户端,告诉客户端该资源被永久移动到位置B(通过响应头部的Location字段):

输入图片说明

然后客户端重新请求资源B得到想要的结果:

输入图片说明

重定向时,如果该资源是被临时移动,服务端可能会返回302 Temporarily Moved,但是302响应可能会被搜索引擎认为是在作弊,所以日常开发最好使用301Move Permanently 。

最后,请求一个资源有可能发生多次重定向行为(请求A,被重定向到B,又被重定向到C,…,最后得到真正的资源)。

NGINX作为WebSocket代理

对于企业生产用途,需要多个WebSocket服务器来实现性能和高可用性,需要了解WebSocket协议的负载平衡层,NGINX自1.3版本起支持WebSocket,并可作为反向代理,并进行WebSocket的负载平衡应用。(所有版本的NGINX Plus也支持WebSocket。)

允许在客户机和后端服务器之间建立隧道,NGINX支持WebSocket。对于NGINX将升级请求从客户端发送到后台服务器,必须明确设置Upgrade和Connection标题,如下例所示:

location /wsapp/ { 
proxy_pass http://wsbackend; 
proxy_http_version 1.1; 
proxy_set_header Upgrade $http_upgrade; 
proxy_set_header Connection “upgrade”; 
} 

一旦完成,NGINX将此处理为WebSocket连接。

NGINX Websocket示例

Nginx 作为 WebSockets 代理

WebSocket 教程 WebSocket 详解教程 HTML5 WebSocket

搭建WebSocket服务器与客户端

TCP/IP四层模型与OSI参考模型

猜你喜欢

转载自my.oschina.net/u/3421984/blog/1788026