HOME
BLOG
TIME
FRIENDS
SAY TO ME
MOOD
TRAVELING
Nginx实现动静分离
2020/08/21 488 2 分钟 点击

动静分离

动静分离更加高效,安全,这里我使用一台虚拟机来充当一个集群。
不过需要提前在对应的服务器上创建相应的目录和主页文件。

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 ;
    }
项目实验