1、动静分离:
将动态请求与静态请求分离开,动态请求经过nginx访问tomcat服务器,nginx可以直接做静态请求服务器,静态请求直接由nginx处理,动态请求由tomcat处理。
2、动静分离实现方式:
(1)将静态资源独立成单独域名,放在独立的服务器上,如七牛云;
(2)动静资源混合发布,通过nginx服务器指定静态资源后缀名,实现不同请求的转发。expire参数可以设置静态资源在缓存中过期时间,避免请求频繁访问nginx。
(expire设置过期时间后,请求无需访问服务器,直接在浏览器确定是否过期,未过期则直接获取,不会产生额外流量)
3、动静分离实例:
(1)实例内容:
①两台tomcat服务器,端口号分别为8080、8081;
②在两台tomcat下部署jsp页面,jsp页面里面带有图片访问(静态资源);
③通过访问nginx代理服务器地址,实现jsp页面显示,请求访问nginx,nginx轮询分发给两台tomcat服务器,静态资源则直接访问静态文件获取;
④访问/image/为静态请求,此处使用linux操作。
如下图:
(2)具体实现步骤:
①在tomcat8080和tomcat8081下的webapps目录下,创建/edu/index.jsp,编辑index.jsp页面
//创建edu文件
mkdir tomcat8080/webapps/edu
mkdir tomcat8081/webapps/edu
//创建index.jsp页面
touch tomcat8080/webapps/edu/index.jsp
touch tomcat8081/webapps/edu/index.jsp
//编辑两个index.jsp页面
vim tomcat8080/webapps/edu/index.jsp
vim tomcat8081/webapps/edu/index.jsp
tomcat8080下index.jsp页面内容:
tomcat8081下index.jsp页面
②启动两台tomcat服务器,找到tomcat中bin目录
//启动命令
./startup.sh
③配置/usr/ocal/nginx/conf下的nginx.conf配置文件:
cd /usr/local/nginx/conf
vim nginx.conf
在http模块中配置上游服务器,即nginx代理下的服务器ip地址,nginx使用轮询分发模式:
(此处配置了tomcat服务器8080端口,和8081端口)
upstream myserver {
server 192.168.23.129:8080 ;
server 192.168.23.129:8081 ;
}
在server模块中配置动态请求分发地址和静态请求分发地址:
静态请求直接访问data文件下的资源;
动态请求则是轮询访问端口号为8080的服务器和端口号为8081的服务器。
//静态请求代理
location /image/ {
root /data/;
}
//动态请求代理
//myserver要和上游服务器指定名字一样
location / {
proxy_pass http://myserver;
}
④进入目录/usr/local/nginx/sbin,启动nginx服务器:
(一定要关闭虚拟机防火墙)
./nginx
//关闭防火墙
systemctl stop firewalld
(3)测试,访问ip:http://192.168.23.129:80/edu/index.jsp:
第一次访问的后台服务器是端口号为8080的tomcat服务器,静态资源为data文件下资源:
第二次访问端口号为8081的tomcat服务器,静态资源为data文件下资源:
测试成功!!!!!!!