web高并发架构设计。
nginx是轻量级支持高并发的web容器。
正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
反向代理实际运行方式是代理服务器接受网络上的连接请求。它将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
一、nginx可以提供的服务
- web 服务.
- 负载均衡 (反向代理)
- web cache(web 缓存)
二、nginx应用场合
静态服务器(图片,视频服务),另个lighttpd。并发几万,html,js,css,flv,jpg,gif等。动态服务,nginx—fastcgi 方式运行PHP,jsp。(PHP并发约500-1500,MySQL 并发约300-1500)。反向代理,负载均衡。日pv2000W以下,都可直接用nginx做代理。缓存服务。类似 SQUID,VARNISH。nginx负载均衡的5种策略及原理
1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、指定权重指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=8;
server 192.168.0.15 weight=10;
}
3、IP绑定 ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
三、转https
server {
listen 8443 ssl; #监听https的端口
server_name testliumj.test.com; #监听https所访问的域名
#ssl on;
ssl_session_timeout 30m;
ssl_certificate ut_ssl.crt; #证书公钥
ssl_certificate_key ut_ssl.key; #证书私钥
#proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_connect_timeout 10;
proxy_read_timeout 30;
proxy_send_timeout 30;
client_max_body_size 20m;
client_body_buffer_size 4096k;
location / {
proxy_pass http://myweb/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}