Nginx 集成
Nginx 集成支持
- 日志收集。
- 负载均衡。
- URL 转发。
- URL 屏蔽。
先决条件
- RustFS 服务器已安装并运行。
- RustFS 端口已知。
- Nginx 已安装。
- RustFS IP 地址已知。
配置
nginx
upstream rustfs {
least_conn;
server 127.0.0.1:9000;
}
upstream rustfs-console {
least_conn;
server 127.0.0.1:9001;
}
server {
listen 80;
listen [::]:80;
server_name YOUR_DOMAIN;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_set_header Host $http_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;
# Disable Nginx from converting HEAD to GET
# proxy_cache_convert_head off;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://rustfs; # This uses the upstream directive definition to load balance
}
}
server {
listen 8080;
listen [::]:8080;
server_name YOUR_DOMAIN;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_set_header Host $http_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;
# Disable Nginx from converting HEAD to GET
# proxy_cache_convert_head off;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://rustfs-console; # This uses the upstream directive definition to load balance
}
}3. 多机负载均衡
如果您需要在分布式环境中添加多台 RustFS 服务器,请提前调整 DNS 解析或本地 Hosts 地址,并修改添加服务器。
upstream rustfs {
least_conn;
server 10.0.0.1:9000;
server 10.0.0.2:9000;
server 10.0.0.3:9000;
server 10.0.0.4:9000;
}
upstream rustfs-console {
least_conn;
server 10.0.0.1:9001;
server 10.0.0.2:9001;
server 10.0.0.3:9001;
server 10.0.0.4:9001;
}4. 专用 DNS 模式
为 RustFS 服务创建或配置专用的 DNS 名称。
将 RustFS 服务器的 S3 API 请求代理到此域的 /api/ 路径。将 RustFS Console Web GUI 请求代理到根路径 (/)。例如,给定主机名 www.rustfs.dev:Endpoint: www.rustfs.dev/api/ Console: www.rustfs.dev
server {
listen 443;
listen [::]:443;
http2 on;
server_name www.rustfs.dev;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
# S3 API
location /api {
proxy_set_header Host $http_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_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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:9000;
}
# Console
location / {
proxy_set_header Host $http_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_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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:9001;
}
}