什么是动静分离
在生成页面的时候,Nginx会代理Tomcat服务器,将动态请求转发给Tomcat服务器,在Tomcat服务器上某一目录下找到html文件,加载到页面上,在html文件中,还会访问很多静态资源,如js、css、img等,这些静态资源我们会放在Nginx服务器上,也就是Tomcat上是没有的,直接从Nginx中拿出来就行,这就是动静分离。
前期准备
从上面的描述上来看,我们需要使用到两台虚拟机,目前我们是有4台虚拟机,从中选择两台就好了,那就CentOS7-1作为Nginx服务器,CentOS7-2作为Tomcat服务器好了
此时我们的CentOS7-2是没有安装Tomcat的,不要慌,我已经写好了一篇Linux上安装Tomcat和JDK的教程了
教程地址:在Linux上安装部署JDK和Tomcat(超级详细)
成功将CentOS7-2安装Tomcat后,我们还缺少一个项目,这个项目中包括了html文件和一些静态资源,我这里也准备了一个项目,其中包括了js、img、css这些静态资源和html文件。
网盘链接:
https://pan.baidu.com/s/1Pbh-G9Q92hu5nVsJCb_1jA
提取码:wagi
下载完毕后里面有两个文件,用ROOT.rar就可以了,上面那个jsp之后也会用到
在ROOT中,包括了index.html、css、img、js、topimg这些,其中css、img、js、topimg都是静态资源(topimg里面也是img),我们这些静态资源将会放到Nginx服务器上,html文件会放在tomcat服务器上
动静分离的基本配置
使用centos7-2作为tomcat服务器,centos7-1作为nginx服务器
topimg、js、img、css都是静态资源,index.html会加载这些静态资源,现在这些资源都在tomcat中的wedapps/ROOT
目录中(刚安装的tomcat这个目录下有东西,全部删除就行)
我们来启动tocmat看看效果startup.sh
浏览器地址栏输入ip地址:8080(8080是tomcat的端口号),成功加载了这些静态资源
删除tomcat服务器上的所有静态资源,只保留index.html
重启tomcat服务器并访问,发现静态资源已经访问不到了
将静态资源全部转移到/usr/local/nginx/html
目录下
编辑nginx服务器的配置文件,增加几个location,分别对应相应的静态资源,最后使用proxy_pass反向代理到tomcat服务器
启动nginx服务器
浏览器地址栏输入nginx服务器的ip地址,发现成功加载静态资源,并且代理了tomcat服务器
随便找一张图片在新标签页打开,发现是由nginx服务器代理加载的
使用正则配置动静分离
修改Nginx服务器的配置文件,使用正则表达式配置location,这样img、css、js、topimg都可以找到
重启nginx服务器,在浏览器上输入nginx的ip地址,也可以加载到静态资源