IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Minio + Nginx 实现静态资源对外访问 -> 正文阅读

[系统运维]Minio + Nginx 实现静态资源对外访问

Minio + Nginx 实现静态资源对外访问

背景:

? ? ? ? 公司交付项目,文件服务java + minio实现文件基本功能。其中包含文件上传与下载与在线预览,由于文件下载功能实现方式问题(web直接调用文件预览接口,有minio直接返回可预览路径二次请求实现文件下载)。

? ? ? ? 在公司局域网内没有问题,到客户环境文件无法下载,客户环境文件上传直接同网段局域网内部通讯没有问题,但是下载请求为公网,又不想打破网关内内网通讯,静态低敏访问直接开启对外访问权限的业务逻辑,所以,解决问题的方式只有一个,就是下载功能返回的路径必须是公网可以正常访问。

剖析问题:

? ? ? ? 代理实现,配合dmz区??(这里用的是nginx)代理直接将请求转发一下就可以了,思路是对的,但是请求穿透到minio服务器后访问被拒绝,验证密钥失败。

? ? ? ? 密钥?校验失败?要解决这个问题就要先了解minio加密与校验的环节,没有必要非的知道minio的加密手段,校验失败肯定就是在校验前,提供的校验参数与加密时不一致,问题出在哪里了呢?在转发前是没有问题的啊,转发之后可以访问了,但是校验不通过,那一定就是转发环节出了问题,结合以上分析,去minio找了官方文档,按照官方配置还是不可以。

? ? ? ? 肯定是参与加密的参数不满足呀!

解决问题:

  • minio(yaml.xml)配置
minio:
  oss:
    policyExpire: 300
    accessKeyId:  123456
    accessKeySecret:  123456
    endpoint: http://127.0.0.1:9199
    # 可以公网访问的域名,将minio返回的 ip 和端口直接替换就可以访问了
    web_endpoint: https://demo.chenyb-sec.com
    bucketName: oss-chenyb
    # km 最大支持 5g
    maxSize:  50
  • nginx配置
server {
    listen       80;
    listen  443 ssl;
    server_name  https://demo.chenyb-sec.com;

    #选配 优化属性
    ignore_invalid_headers off;
    client_max_body_size 1000m;
    proxy_buffering off;

    #必须 防止请求头丢失
    underscores_in_headers on;   

    #选配 优化属性
    proxy_set_header        Host            $http_host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Scheme        $scheme;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    add_header Pragma       "no-cache";

    #选配 优化属性
    # 针对缺失"X-Content-Type-Options"头漏洞整改建议
    add_header X-Content-Type-Options nosniff;   #影响demo服务登出等功能
    # 针对缺失"X-XSS-Protection"头漏洞整改建议
    add_header X-XSS-Protection "1; mode=block";
    # 针对点击劫持:X-Frame-Options头缺失漏洞的整改建议
    #add_header X-Frame-Options "SAMEORIGIN";
    # 针对缺少HTTP Strict-Transport-Security头漏洞的整改建议
    add_header Strict-Transport-Security "max-age=31536000;includeSubdomains;";
    
   

    #必须 minio 转发路由
    # 路由与minio.oss.bucketName  保持一致 
   location /oss-chenyb/ {

       # minio.oss.endpoint 参数,参与签名(服务直连地址)
       proxy_set_header X-Real-IP 127.0.0.1:9199;

       # minio.oss.endpoint 参数,参与签名(服务直连地址)
       proxy_set_header Host 127.0.0.1:9199;
       
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;

       proxy_connect_timeout 300;
       # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
       proxy_http_version 1.1;
       proxy_set_header Connection "";
       chunked_transfer_encoding off;

       # minio 服务直连地址
       proxy_pass  http://127.0.0.1:9199;
    }
  • 注意两个配置文件呼应关系即可
    • web_endpoint:可以请求到nginx的域名
    • bucketName:最好是nginx路由规则
    • endpoint:能请求到minio的通讯地址,与proxy_pass、proxy_set_header Host、proxy_set_header X-Real-IP保持一致,因为要参与校验
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 11:10:24  更:2022-07-03 11:14:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:19:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码