This repository has been archived by the owner on Jan 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
179 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
version: '3.7' | ||
|
||
# Settings and configurations that are common for all containers | ||
x-minio-common: &minio-common | ||
image: quay.io/minio/minio:RELEASE.2021-12-09T06-19-41Z | ||
command: server --console-address ":9001" http://minio{1...4}/data{1...2} | ||
expose: | ||
- "9000" | ||
- "9001" | ||
environment: | ||
MINIO_ROOT_USER: minio | ||
MINIO_ROOT_PASSWORD: minio123 | ||
healthcheck: | ||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] | ||
interval: 30s | ||
timeout: 20s | ||
retries: 3 | ||
|
||
# starts 4 docker containers running minio server instances. | ||
# using nginx reverse proxy, load balancing, you can access | ||
# it through port 9000. | ||
services: | ||
minio1: | ||
<<: *minio-common | ||
hostname: minio1 | ||
volumes: | ||
- data1-1:/data1 | ||
- data1-2:/data2 | ||
|
||
minio2: | ||
<<: *minio-common | ||
hostname: minio2 | ||
volumes: | ||
- data2-1:/data1 | ||
- data2-2:/data2 | ||
|
||
minio3: | ||
<<: *minio-common | ||
hostname: minio3 | ||
volumes: | ||
- data3-1:/data1 | ||
- data3-2:/data2 | ||
|
||
minio4: | ||
<<: *minio-common | ||
hostname: minio4 | ||
volumes: | ||
- data4-1:/data1 | ||
- data4-2:/data2 | ||
|
||
nginx: | ||
image: nginx:1.19.2-alpine | ||
hostname: nginx | ||
volumes: | ||
- ./nginx.conf:/etc/nginx/nginx.conf:ro | ||
ports: | ||
- "9000:9000" | ||
- "9001:9001" | ||
depends_on: | ||
- minio1 | ||
- minio2 | ||
- minio3 | ||
- minio4 | ||
|
||
## By default this config uses default local driver, | ||
## For custom volumes replace with volume driver configuration. | ||
volumes: | ||
data1-1: | ||
data1-2: | ||
data2-1: | ||
data2-2: | ||
data3-1: | ||
data3-2: | ||
data4-1: | ||
data4-2: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
user nginx; | ||
worker_processes auto; | ||
|
||
error_log /var/log/nginx/error.log warn; | ||
pid /var/run/nginx.pid; | ||
|
||
events { | ||
worker_connections 4096; | ||
} | ||
|
||
http { | ||
include /etc/nginx/mime.types; | ||
default_type application/octet-stream; | ||
|
||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | ||
|
||
access_log /var/log/nginx/access.log main; | ||
sendfile on; | ||
keepalive_timeout 65; | ||
|
||
# include /etc/nginx/conf.d/*.conf; | ||
|
||
upstream minio { | ||
server minio1:9000; | ||
server minio2:9000; | ||
server minio3:9000; | ||
server minio4:9000; | ||
} | ||
|
||
upstream console { | ||
ip_hash; | ||
server minio1:9001; | ||
server minio2:9001; | ||
server minio3:9001; | ||
server minio4:9001; | ||
} | ||
|
||
server { | ||
listen 9000; | ||
listen [::]:9000; | ||
server_name localhost; | ||
|
||
# To 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; | ||
# To disable buffering | ||
proxy_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; | ||
|
||
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_pass http://minio; | ||
} | ||
} | ||
|
||
server { | ||
listen 9001; | ||
listen [::]:9001; | ||
server_name localhost; | ||
|
||
# To 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; | ||
# To disable buffering | ||
proxy_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; | ||
proxy_set_header X-NginX-Proxy true; | ||
|
||
# This is necessary to pass the correct IP to be hashed | ||
real_ip_header X-Real-IP; | ||
|
||
proxy_connect_timeout 300; | ||
|
||
# To support websocket | ||
proxy_http_version 1.1; | ||
proxy_set_header Upgrade $http_upgrade; | ||
proxy_set_header Connection "upgrade"; | ||
|
||
chunked_transfer_encoding off; | ||
|
||
proxy_pass http://console; | ||
} | ||
} | ||
} |