文章目錄
- 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/messagesbasename: 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。優先級第二高。
-
~:區分大小寫
-
~*:不區分大小寫
② 優先級從高到低依次為:
- 精確匹配(=)
- 前綴匹配(^~)
- 正則匹配(~和~*)
- 不寫