文章目录
- 1. 动静分离的好处
- 2. 分离静态文件
- 3. 修改 Nginx 配置文件
- 4. location 命令修饰符优先级
1. 动静分离的好处
Apache Tocmat 严格来说是一款java EE服务器,主要是用来处理 servlet请求。处理css、js、图片这些静态文件的IO性能不够好,因此,将静态文件交给nginx处理,可以提高系统的访问速度,减少tomcat的请求次数,有效的给后端服务器降压。
2. 分离静态文件
部署 ruoyi-admin.war
# 将ruoyi-admin.war移动到/home/apache-tomcat-8.5.81/webapps目录下,并重命名为ROOT.war
mv /home/apps/ruoyi-admin.war /home/apache-tomcat-8.5.81/webapps/ROOT.war
rm -rf /home/apache-tomcat-8.5.81/webapps/ROOT
# 启动Tomcat容器
/home/apache-tomcat-8.5.81/bin/startup.sh
部署完成后,对项目目录稍作调整:
cd /home/apache-tomcat-8.5.81/webapps/ROOT
# 将WEB-INF/classes/static目录下的i18n目录,移动到WEB-INF/classes/templates/目录下
mv WEB-INF/classes/static/i18n WEB-INF/classes/templates/i18n
# 将static目录下的文件,移动到/home/www/目录下
mv WEB-INF/classes/static /some/path
# 给/some/path目录赋予所有操作权限
chmod -R 777 /some/path
# 启动Tomcat容器
/home/apache-tomcat-8.5.81/bin/startup.sh
修改application.yaml文件:
messages:
# 国际化资源文件路径
# 将 static/i18n/messages 修改为 templates/i18n/messages
basename: templates/i18n/messages
调整后 WEB-INF/classes/ 目录下的的结构:
静态文件 /some/path/ 目录说明:除了js、css、图片文件之外,还有字体文件和一个ie提示页面。
3. 修改 Nginx 配置文件
在/etc/nginx/conf.d文件夹下新增 8002.conf 配置文件:
[root@nginx-dev conf.d]# cat 8002.conf
server{
listen 8002;
server_name rioyi.tomcat;
# 请求转达到 http://localhost:8080
location / {
proxy_pass http://localhost:8080;
}
# 请求ie页面
location = /html/ie.html {
root /some/path/static;
}
# 请求字体文件
location ^~ /fonts/ {
root /some/path/static;
}
# css|js|png|jpg|gif|ico 页面
location ~ \.(css|js|png|jpg|gif|ico) {
root /some/path/static;
}
}
[root@nginx-dev conf.d]# nginx -s reload
访问 http://192.168.1.9:8002 即可访问若依后台管理系统。
直接访问某个静态文件:http://192.168.1.9:8002/css/login.min.css,就会进入 /some/path/static/ruoyi/css/ry-ui.css
4. location 命令修饰符优先级
location可以使用修饰符或正则表达式
① 修饰符:
-
=:等于,严格匹配 ,匹配优先级最高。
-
^~:表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其它 location。优先级第二高。
-
~:区分大小写
-
~*:不区分大小写
② 优先级从高到低依次为:
- 精确匹配(=)
- 前缀匹配(^~)
- 正则匹配(~和~*)
- 不写