0

I am currently running an nginx server in front of a number of minio servers. Each minio server runs on its own port on localhost for a single user and nginx is used for SSL termination and forwarding to that internal process. The nginx config looks like this:

server {
    listen              9000 ssl;
    root                /opt/local/share/nginx/foo.rna.nl;
    server_name         foo.rna.nl;
    ssl_certificate     /opt/local/etc/letsencrypt/live/foo.rna.nl/fullchain.pem;
    ssl_certificate_key /opt/local/etc/letsencrypt/live/foo.rna.nl/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers   on;
    ssl_session_cache           shared:SSL:10m;
    proxy_buffering     off;
    client_max_body_size 1000m;
    ignore_invalid_headers off;
    error_log /opt/local/var/log/nginx/minio_error.log info;
    access_log /opt/local/var/log/nginx/minio_access.log;
    location / {
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_connect_timeout 300;
        if ($http_authorization ~* "^AWS(4-HMAC-SHA256 Credential=| )XXXXXXXXXXXXXXXXXXXX") {
            proxy_pass http://127.0.0.1:9002;
        }
        if ($http_authorization ~* "^AWS(4-HMAC-SHA256 Credential=| )YYYYYYYYYYYYYYYYYYYY") {
            proxy_pass http://127.0.0.1:9003;
        }
    }
}

I am trying to find out (and failing) to turn this into

  • A traefik container based on a docker compose file (this I have already running, with a minimal web site as one service behind it)
  • A number of minio containers, each with its own data directory, on an 'internal' network inside docker

I will be able to set up those minio containers, but what I haven't been able to find out is how to replicate the SSL-termination and forwarding that I have in nginx — based on the authentication that a use provides to minio —in traefik

Can someone point me in the right direction? How do I do what is in this nginx config (based on nginx's $http_authorization variable) in `traefik?

gctwnl
  • 171
  • 11

0 Answers0