【Nginx学习总结】5. Nginx+Tomcat 的动静分离

一、为什么动静分离

Nginx解析静态资源的性能比较好,而Tomcat对动态资源的解析比较好,解析静态资源性能较差,动静分离的目的也就是各司其职,加快页面解析的速度!

二、动静分离的方法

方案一: 静态资源与动态资源放在两个不同的服务器上

【Nginx学习总结】5. Nginx+Tomcat 的动静分离_第1张图片

我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat。配置 Nginx,当请求的是 html、jpg 等静态资源时,就访问 A 主机上的静态资源目录;当用户提出动态资源的请求时,则将请求转发到后端的 B 服务器上,交由 Tomcat 处理,再由 Nginx 将结果返回给请求端。

 

1. 动静分离的配置文件

 

# 转发的服务器,upstream 为负载均衡做准备
 upstream tomcatserver2{ 
        server 192.168.216.137:8080; 
 } 
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  ak47.html index.html index.htm;
        }
       # 动态请求的转发
        location ~ .*.jsp$ { 
            proxy_pass http://tomcatserver2; 
            proxy_set_header Host $host; 
        } 
       # 静态请求直接读取
       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { 
          root /im
          expires      30d; 
       }
 }

【提示】

【Nginx学习总结】5. Nginx+Tomcat 的动静分离_第2张图片

 

2. 在虚拟机的根目录创建im文件夹,然后放入一个图片

【Nginx学习总结】5. Nginx+Tomcat 的动静分离_第3张图片

 

3. 测试

(1)启动nginx服务

 

(2)访问静态资源

【Nginx学习总结】5. Nginx+Tomcat 的动静分离_第4张图片

(3)访问动态资源

【Nginx学习总结】5. Nginx+Tomcat 的动静分离_第5张图片

(4)测试成功!

 

方案二  动静资源混合放在一起发布,通过nginx来分开!具体怎么实现,也是用location指定不同的后缀名实现不同的请求转发!(不推荐)

 

你可能感兴趣的:(【Nginx学习总结】5. Nginx+Tomcat 的动静分离)