nginx--静态访问图片资源(Banner)

本文介绍如何在Windows环境下配置Nginx作为图片资源的代理服务器,以减轻Tomcat的IO负担并提升性能。文中详细讲解了代码实现过程及Nginx配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用背景

之前都是用Tomcat访问图片资源,消耗比较大。使用nginx能够减少Tomcat中间件的IO,提高性能。本文介绍的是在windows环境上搭建nginx代理。

轮播图表中有这么两个字段,第一个是图片存在的物理地址(image_path),另一个是图片的访问地址,即通过静态代理访问的地址(image_url)。

代码实现

@RequestMapping("insert")
    public String insert(Banner banner,BindingResult result,Model model, 
            MultipartFile image,HttpSession session){

        BannerCon cond = new BannerCon();
        cond.setName_v(banner.getName());
        // 名称不能重复
        long count = bannerService.queryCount(cond);
        if(count > 0){
            result.rejectValue("name", "", "名称不能重复");
        }

        // 如果上传图片为空
        if(image.isEmpty()){
            result.rejectValue("picture_path", "", "轮播图图片不能为空");
        }

        try {
            // 处理图片
            String imageName = image.getOriginalFilename();
            // 截取后缀名
            int position = 0;
            if( (position = imageName.lastIndexOf(".")) > 0){
                String suffix = imageName.substring(position).toLowerCase();
                String prefix = UUIDGenerator.getUUID();

                if(".png".equals(suffix) || ".jpg".equals(suffix)){

                    String newName = prefix + suffix;

                    File dest = new File(Constant.PICTURE_PATH,newName);
                    image.transferTo(dest);

                    // 给轮播图地址赋值
                    banner.setPicture_path(dest.getAbsolutePath());// 图片的存放路径
                    banner.setPicture_url(Constant.PICTURE_URL + newName);// 展示图片的路径

                }else{
                    result.rejectValue("picture_path", "", "只支持.png或.jpeg的图片类型");
                }
            }

        } catch (IOException e) {
            result.rejectValue("picture_path", "", "图片上传失败");
            e.printStackTrace();
        }

        // 返回错误信息
        if(result.hasErrors()){
            model.addAttribute("typeMap", util.getDictMap(10,false));// 生成终端类的下拉列表
            return "cms/banner/insert";
        }

        // 保存数据
        bannerService.insert(banner);
        return "redirect:list";
    }

最终保存到数据库中效果图:

这里写图片描述

搭建nginx环境

修改nginx.conf

这里写图片描述

修改img.conf

文件起名随意

这里写图片描述

server {
listen 80;
server_name img.power.combanner;
root D:/img/banner/;
location / {
index index.html;
}
}

修改hosts文件

用文本编辑器打开 C:\Windows\System32\drivers\etc\hosts
增加如下内容
127.0.0.1 img.power.combanner
意思是将 img.power.combanner 地址指向本机

或者安装HostAdmin Host Editor直接修改

测试

开启nginx代理,通过image_url直接访问图片,如果能访问成功,说明配置成功

负载均衡的配置

1.粘贴两个Tomcat

2.修改其中一个Tomcat的端口号(conf\server.xml)

3.修改nginx.conf


    查找到#gzip on; 后加如下内容:
    upstream  localhost {
    server  localhost:8080 weight=1;
    server  localhost:8088 weight=1;
    }
    Weight 表示权重,配置两个tomcat接受请求的比例

4.接下来的步骤从和上面一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值