动静分离
动静分离更加高效,安全,这里我使用一台虚拟机来充当一个集群。
不过需要提前在对应的服务器上创建相应的目录和主页文件。
upstream upload {
server 172.16.69.101:80;
}
upstream static {
server 172.16.69.102:80;
}
upstream default {
server 172.16.69.103:80;
}
server {
listen 80 default_server;
server_name www.yangyang.com;
location / {
proxy_pass http://default;
}
location /static {
proxy_pass http://static;
}
location /upload {
proxy_pass http://upload;
}
}
总结:实现网站集群动静分离
- 提高网站服务安全性
- 管理操作工作简化
- 可以换分不同人员管理不同集群服务器
根据用户访问的终端信息显示不同页面
准备架构环境
iphone访问 www.yangyang.com 显示 iphone_ access 172.16.69.101:80 mobile移动端集群
Google访问 www.yangyang.com 显示 google_access 172.16.69.102:80 web端集群
IE 360访问 www.yangyang.com 显示 default_access
172.16.69.103:80 default端集群
web01 :
echo "iphone_ access 172.16.69.101:80" > /usr/share/nginx/html/index.html
web02 :
echo " google_access 172.16.69.102:80" > /usr/share/nginx/html/index.html
web03 :
echo "default_access 172.16.69.103:80" > /usr/share/nginx/html/index.html
书写配置文件
upstream iphone {
server 172.16.69.101:80;
}
upstream google {
server 172.16.69.102:80;
}
upstream default {
server 172.16.69.103:80;
}
server {
listen 80 default_server;
server_name www.yangyang.com;
location / {
if ($http_user_agent ~* iphone){
proxy_pass http://iphone;
}
if ($http_user_agent ~* Chrome){
proxy_pass http://google;
}
proxy_pass http://default;
}
}
stub_status模块:
Active connections : 激活的连接数信息
accepts: 接收的连接数汇总(综合) TCP
handled: 处理的连接数汇总(综合) TCP :
requests: 总计的请求数量HTTP协议请求
Reading: nginx服务读取请求报文的数量
Writing: nginx服务响应报文信息数量
Waiting: nginx队列机制,要处理(读取或者响应保存进行保存)
出现无限跳转如何解决:
- 第一种方法:利用不同server区块配置打破循环
server {
server_ name yangyang.com;
rewrite ^/(.*) http:/ /www.yangyang.com/$1 permanent;
} - 第二种方法:利用if判断实现打破循环
if ($host ~* “^yangyang.com$”) {
rewrite ^/ (.*) http://www.yangyang.com/$1 permanent ;
}