大型网站架构
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示例
WebSocket 教程 WebSocket 详解教程 HTML5 WebSocket