当前位置: 首页 > article >正文

使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址

从http切换至https

许多不同ip的图片地址需要统一进行代理
部分图片地址是重定向地址

nginx配置

主站地址:https://192.168.123.100/

  • 主站nginx配置
server {
        listen       443 ssl;
        server_name  localhost;
        
        #ssl证书
        ssl_certificate ../ssl/ca.crt; 
        #私钥文件
        ssl_certificate_key ../ssl/ca.key; 
        ssl_session_cache shared:SSL:1m;                 
        ssl_session_timeout 5m;
        ssl_ciphers HIGH:!aNULL:!MD5; 
        ssl_prefer_server_ciphers on;
         
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /proxyAgent {
          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;
          proxy_intercept_errors on;
          if ($args ~* "imgUrl=(.*)") {
                proxy_pass $1;
                error_page 301 302 = @handle_redirect;
          }
        }
        location @handle_redirect {
                set $saved_redirect_location $upstream_http_location;
                rewrite ^(.*)$ $saved_redirect_location break;
                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;
                proxy_pass $saved_redirect_location;
        }
}
  • 主站html
<img src="/proxyAgent/?imgUrl=http://192.168.123.102:8093/test/123456?url=1234567&type=picpic">
<img src="/proxyAgent/?imgUrl=http://192.168.123.102/test/1.jpg">
<img src="/proxyAgent/?imgUrl=https://192.168.123.105/3.jpg">
  • 192.168.123.102:8093为java模拟重定向
@GetMapping("/{picId}")
    public void getPic(@PathVariable("picId") String picId,
                       @RequestParam("url") String url,
                       @RequestParam(value = "type") String type, HttpServletResponse response) throws IOException {
        if (StrUtil.isBlank(type)) {
            return;
        }
        if (StrUtil.isBlank(url)) {
            return;
        }
        System.out.println(type);
        System.out.println(url);
        response.sendRedirect("http://192.168.123.102/test/2.jpg");
    }

最终三张图片均可正常访问

在这里插入图片描述


http://www.kler.cn/a/507738.html

相关文章:

  • Android 12.0 息屏休眠后立即启动屏保功能实现
  • 处理 SQL Server 中的表锁问题
  • 具体场景的 MySQL 与 redis 数据一致性设计
  • vue 纯前端导出 Excel
  • C语言初阶习题【30】字符串左旋
  • 信凯科技业绩波动明显:毛利率远弱行业,资产负债率偏高
  • [cg] UE5 调试技巧
  • Spring Boot 全局异常处理
  • 第8篇:从入门到精通:掌握Python异常处理
  • Redis系列之底层数据结构整数集IntSet
  • .Net Core webapi 实现JWT认证
  • 知识图谱综述论文阅读(一)
  • AI大模型架构背后的数学原理和数学公式,基于Transformer架构的数学公式有哪些?
  • 寒假刷题Day8
  • 【影刀_常规任务计划_API调用】
  • 深度学习-87-大模型训练之预训练和微调所用的数据样式
  • 基于PHP的校园新闻发布管理
  • Go入门学习笔记
  • SQL ON与WHERE区别
  • 架构设计:微服务还是集群更适合?
  • Java负载均衡
  • C++ 强化记忆
  • 【Linux系统】分区挂载
  • 图像的旋转之c++实现(qt + 不调包)_c++图像旋转
  • 晨辉面试抽签和评分管理系统之十:如何搭建自己的数据库服务器,使用本软件的网络版
  • 【机器学习实战入门】有趣的Python项目:使用OpenCV进行性别和年龄检测