Nginx动静分离简单来说就是把动态和精通请求分开,不能理解成知识单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。
动静分离从目前实现方式大致分为两种:
一是纯粹的把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
二是动态和静态文件混合在一起发布,通过nginx分开。通过location指定不同的后缀名实现不同的请求转发。
本次简单实现了nginx1作为负载均衡服务器,node2和node3是real server,nginx2存储了node2和node3内静态资源需要绑定的动态资源(图片和CSS文件)
node2和node3上在tomcat目录下/web-app/ROOT/index.jsp文件修改为
<link rel="stylesheet" type="text/css" href="/css/index.css">
<img src="/image/logo.jpg" ><br/>
<font class="myfont">
from 192.168.88.62 <br/>
session=<%=session.getId()%></font>
NGINX2新建文件夹
mkdir -p /data/image /data/css
并在里面上传命名为logo.jpg的图片,再添加一个index.css
且nginx目录下conf/nginx.conf文件里的第一个server修改为
server {
listen 80;
server_name 192.168.88.66;
location /image{
root /data;
}
location /css{
root /data;
}
}
NGINX1上nginx目录下的conf/nginx.conf文件里添加location
location /image/ {
proxy_pass http://192.168.88.66;
}
location /css/ {
proxy_pass http://192.168.88.66;
}
最后启动node2和node3,重启nginx1和nginx2就可以通过访问nginx1实现动态资源和静态资源分离