项目场景:
历史原因,生产环境 静态资源文件分别放在2台服务器上。需要通过修改nginx配置来实现 静态资源整合访问。
实现步骤
直接附上 本地测试nginx配置文件,作为参考:
http {
upstream fileserver {
server 127.0.0.1:8091;
server 127.0.0.1:8099;
}
# 请求访问端口
server {
listen 8091;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#资源url
location ^~ /enadmin/files {
# 具体位置
alias E:/file/;
try_files $uri $uri/ @fileEnsbrain;
absolute_redirect off;
}
#
location @fileEnsbrain {
proxy_pass https://fileserver;
absolute_redirect off;
}
}
#其他资源服务器
server {
listen 8099;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#注意url和入口的url要一致,不然会404
location ^~ /enadmin/files {
alias D:/file/;
}
}
}
实现效果:
文件类型校验公式
location ^~ /enadmin/files {
#访问文件类型校验-不满足(--文件类型--)的返回 404
if ($uri !~* "(.*)\.(png|jpg|mp4|bmp|jpeg|mov|avi|MPEG|docx|ppt|xlsx|xls)") {
return 404;
}
#限制资源文件目录 前端显示
if ($uri !~* "(.*)") {
return 404;
}
alias D:/file/;
}