nginx可实现负载均衡,并在此基础上实现动静分离。
负载均衡配置。在http模块中做如下配置:
upstream website1{
server 192.168.0.100 weight=2;
server 192.168.0.200 weight=3;
server 192.168.0.222 weigth=4;
}
其中,weight是权重值,权重越大,命中率越高。
下面再配置server模块:
server
{
listen 80;
server_name www.penkr.com;
index index.php index.html index.htm;
root /data/www/www.penkr.com;
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://website1;
}
location ~ .*\.(php|jsp|cgi|shtml)
{
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://website1;
}
location ~ *.\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)
{
root /data/www/www.penkr.com;
}
}
第一个location 表示所有的请求都到此处(如果有其他location,则除去满足其他请求的请求,都请求到此处)
第二个location 表示所有的动态请求都请求到负载服务器
第三个location 表示所有的静态请求都请求本地资源
这就实现了动静分离。