java项目使用宝塔面板部署服务器nginx不能反向代理找到图片资源
1.查看文件是否上传成功,宝塔面板也很方便查看文件地址
2.检查拦截器是否放行图片下载接口,以防没有token权限
3.图片上传是否使用云服务器地址
//@PostMapping("/upload") //public Result upload(@RequestParam("file") MultipartFile file) throws IOException { // //找到文件的位置 // String filePath = System.getProperty("user.dir") + "/files/";//获取当前项目的根路径 // if(!FileUtil.isDirectory(filePath)){ // FileUtil.mkdir(filePath); // } // byte[] bytes = file.getBytes(); // String filename = System.currentTimeMillis() + "_" +file.getOriginalFilename(); //文件的原始名称 // //写入文件 // FileUtil.writeBytes(bytes,filePath +filename); // // // 修改这里:使用服务器IP或域名替换localhost // String url = "http://云服务器地址/files/download/" + filename; // // 或者使用相对路径(推荐) // // String url = "/files/download/" + filename; // // return Result.success(url);
4.确定网站nginx配置是否写入
location ^~ /files/download/ {
proxy_pass http://127.0.0.1:9999/files/download/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 跨域配置
add_header 'Access-Control-Allow-Origin' 'http://49.234.157.76' always;
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
if ($request_method = 'OPTIONS') {
return 204;
}
}
注意:Nginx location 优先级冲突:正则规则 location ~ .*\.(gif|jpg|jpeg|png...)
覆盖了 /files/download/
路径
如果还是没有成功,可以使用先使用命令行直接访问后端接口,如果没问题就着重排查nginx配置