minio nginx转发
时间: 2025-01-04 08:28:38 浏览: 5
### 配置 Nginx 实现 MinIO 请求转发
为了使 Nginx 正确地将请求转发至 MinIO 服务器并处理 WebSocket 连接,需确保配置文件中包含了必要的设置来支持 HTTP 升级协议以及正确的头部信息传递。
#### 设置环境变量
首先,在启动 MinIO 前应设定相应的环境变量以便自定义浏览器重定向 URL 和 API 访问路径:
```bash
export MINIO_BROWSER_REDIRECT_URL=https://oss.example.com
export MINIO_SERVER_URL=https://ossapi.example.com
export CONSOLE_SECURE_TLS_REDIRECT="off"
```
这些指令会告知 MinIO 使用指定的域名作为其 Web 控制台和 RESTful API 的入口点[^1]。
#### 定义 Nginx 虚拟主机配置
接着创建或编辑 `/etc/nginx/conf.d/minio.conf` 文件用于定义虚拟主机规则。以下是推荐的最小化配置示例:
```nginx
server {
listen 80;
server_name oss.example.com;
# 将HTTP流量升级为WebSocket连接
location / {
proxy_pass http://localhost:9000/;
# 启用WebSockets的支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# 处理错误情况下的上游节点切换策略
proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
# 继承原始请求中的Host头字段值
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 https;
}
}
```
此段代码片段展示了如何通过 `location / {}` 指令集内的参数启用对 WebSocket 的支持,并指定了当遇到特定类型的响应码时尝试其他可用的服务端实例[^3][^4]。
对于第二个域名 `ossapi.example.com` ,可以复制上述模板并将 `listen` 行改为监听 HTTPS 流量(假设已配置 SSL/TLS),同时调整 `proxy_pass` 地址指向实际运行着 MinIO API 接口的位置即可完成整个过程。
阅读全文