Setup Nginx proxy with MinIO Server Slack

Nginx is an open source Web server and a reverse proxy server.

In this recipe we will learn how to set up Nginx proxy with MinIO Server.

1. Prerequisites

Install MinIO Server from here.

2. Installation

Install Nginx from here.

3. Configuration

Proxy all requests

Add the following content as a file /etc/nginx/sites-enabled, e.g. /etc/nginx/sites-enables/minio and also remove the existing default file in same directory.

server {
 listen 80;
 # 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_pass http://localhost:9000;
   health_check uri=/minio/health/ready;


Proxy requests based on the bucket

If you want to serve web-application and MinIO from the same nginx port then you can proxy the MinIO requests based on the bucket name

 # Proxy requests to the bucket "photos" to MinIO server running on port 9000
 location /photos/ {
   proxy_buffering off;
   proxy_set_header Host $http_host;
   proxy_pass http://localhost:9000;
 # Proxy any other request to the application server running on port 9001
 location / {
   proxy_buffering off;
   proxy_set_header Host $http_host;
   proxy_pass http://localhost:9001;

4. Recipe Steps

Step 1: Start MinIO server.

minio server /mydatadir

Step 2: Restart Nginx server.

sudo service nginx restart

Explore Further

Refer this blog post for various MinIO and Nginx configuration options.