美文网首页
动静分离

动静分离

作者: UncleZ_strive | 来源:发表于2019-09-25 08:15 被阅读0次

    1.什么是动静分离

    将动态请求和静态请求区分访问

    2.为什么要做动静分离

    tomcat本身处理静态效率不高,还会带来资源开销.所以使用动静分离,将静态由Nginx处理, 动态由PHP处理或Tomcat处理

    3.如何实现动静分离

    • Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
    • 如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理
    总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端

    4.单机实现动静分离实战

    1.安装
    [root@web01 ~]# yum install java tomcat -y
    2.初始化环境
    [root@web01 ~]# mkdir /usr/share/tomcat/webapps/ROOT        -->主要站点根目录
    [root@web01 ~]# vi /usr/share/tomcat/webapps/ROOT/index.jsp
        <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
        <html>
          <head>
            <title>Nginx+Tomcat</title>
          </head>
          <body>
              <%
                Random rand = new Random();
                out.println("<h2>动态资源</h2>");
                out.println(rand.nextInt(99)+100);
            %>
            <h2>静态图片</h2>
            <img src="nginx.png" />
          </body>
        </html>
    [root@web01 ~]# wget -O /usr/share/tomcat/webapps/ROOT/nginx.png http://nginx.org/nginx.png
    3.重启
    [root@web01 ~]# systemctl start tomcat
    4.配置Nginx
    [root@web1 conf.d]# cat ds.com.conf 
    server {
        listen 80;
        server_name ds.com;
    
    
        location / {
            proxy_pass http://127.0.0.1:8000;
    }
    
        location ~* \.(png|jpg) {
            root /images;
    }
    }
    

    5.集群实现动静分离

    负载均衡服务器
    [root@lb01 conf.d]# cat ds.com.conf 
    upstream java {
        server 172.16.1.7;
    }
    upstream static {
        server 172.16.1.8;
    }
    
    server {
        listen 80;
        server_name ds.com;
    
        location / {
            proxy_pass http://java;
            include proxy_params;
    }
    
        location ~* \.(png|jpg)$ {
            proxy_pass http://static;
            include proxy_params;
    }
    }
    
    web01动态资源服务器
    [root@web1 conf.d]# cat ds.com.conf 
    server {
        listen 80;
        server_name ds.com;
    
    
        location / {
            proxy_pass http://127.0.0.1:8080;
    }
    }
    
    web02静态资源服务器
    [root@web02 conf.d]# cat ds.com.conf 
    server {
        listen 80;
        server_name ds.com;
        
        location ~* \.(png|gif|jpg|mp4)$ {
                    root /images;
                    expires 1d;
    }
    }
    

    相关文章

      网友评论

          本文标题:动静分离

          本文链接:https://www.haomeiwen.com/subject/dbsbuctx.html