server { # Listen for connection on (internal) port 80 listen 80; real_ip_header proxy_protocol; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-By $server_addr:$server_port; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header CLIENT_IP $remote_addr; proxy_pass_request_headers on; proxy_redirect off; client_max_body_size 100M; proxy_buffering off; proxy_request_buffering off; # Change 'inventree-dev-server' to the name of the inventree server container, # and '8000' to the INVENTREE_WEB_PORT (if not default) proxy_pass http://inventree-dev-server:8000; } # Redirect any requests for static files location /static/ { alias /var/www/dev/static/; autoindex on; # Caching settings expires 30d; add_header Pragma public; add_header Cache-Control "public"; } # Redirect any requests for media files location /media/ { alias /var/www/dev/media/; # Media files require user authentication auth_request /auth; # Content header to force download add_header Content-disposition "attachment"; } # Use the 'user' API endpoint for auth location /auth { internal; proxy_pass http://inventree-dev-server:8000/auth/; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; } }