tomcat + nginx实现动静分离
使用tomcat + nginx实现动静分离
什么是动静分离
- 动静分离就是动态资源(jsp、servlet 等…)跟静态资源(js、css、img 等…)进行分离
- 简单来说、就是将静态资源与动态资源分别部署在不同的服务器上
动态资源与静态资源的区别
- 动态资源是在用户多次访问这个资源时,资源的内容可能会发生改变(源代码改变)
- 静态资源是在用户多次访问这个资源时,资源的内容不会改变。
为什么要使用动静分离
- 在项目中,有些资源是需要后端服务器进行处理的(jsp,servlet)
- 而有些资源是不需要后端服务器进行处理的(js、css、img)
- 而这些不需要后端服务器处理静态资源的还一直被访问,会增加后端服务器的压力
- 为了减轻服务器的压力,所以才需要使用到动静分离
动静分离的应用场景
- 大型互联网公司
- 高并发场景
- 性能优化,降低服务器压力
使用tomcat + nginx 实现动静分离的分析图
演示案例
全程在本机进行测试
在浏览器输出 www.myweb.com 能够访问到tomcat的服务器
在浏览器输出 static.myweb.com/static/custom.js 能够访问到静态的custom.js资源文件
1、配置本机的host路径文件
# 注意,这里的ip地址填写nginx服务器的地址
127.0.0.1 www.myweb.com
127.0.0.1 static.myweb.com
2、创建一个简单的springboot的web项目
- 创建一个最简单的Controller控制器,博主的端口设置为8080
3、修改nginx的配置文件
# 配置服务器地址
upstream myserver {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name www.myweb.com;
location / {
proxy_pass http://myserver;
}
}
server {
listen 80;
server_name static.myweb.com;
location /static {
# 静态资源目录地址,会被拼接上location的匹配路径,/usr/local/nginx/static/
root /usr/local/nginx/;
index index.html index.htm;
}
}
4、启动tomcat服务器 + 启动nginx服务器
这个时候,你可以通过 http://static.myweb.com/static/资源名称 的方式来访问自己的静态资源,前提是你得有这个资源路径的目录以及静态文件。
5、实际的使用方式
这个时候怎么使用呢?你在你的动态资源服务器中,需要使用到静态资源的地方(例如html中需要引入js文件),就可以直接通过 http://static.myweb.com/static/资源名称 - 例如:http://static.myweb.com/static/custom.js 的方式获取。