动静分离

2019-09-25  本文已影响0人  UncleZ_strive

1.什么是动静分离

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

2.为什么要做动静分离

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

3.如何实现动静分离

总结来说,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;
}
}
上一篇 下一篇

猜你喜欢

热点阅读