user nginx; worker_processes 1; error_log /var/log/nginx/error.log debug; events { worker_connections 1024; } http { server { listen 80; location / { # React routes are entirely on the App side in the web broswer # Always proxy to root with the same page request when nginx 404s error_page 404 /; proxy_intercept_errors on; proxy_set_header Host $host; proxy_pass http://librephotos-frontend:3000/; } location ~ ^/(api|media)/ { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host __backend_name__; include uwsgi_params; proxy_pass http://librephotos-backend:8001; } # needed for webpack-dev-server location /ws { proxy_pass http://librephotos-frontend:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Django media location /protected_media { internal; alias /protected_media/; } location /static/drf-yasg { proxy_pass http://librephotos-backend:8001; } location /data { internal; alias /data/; } # Original Photos location /original { internal; alias /data/; } # Nextcloud Original Photos location /nextcloud_original { internal; alias /data/nextcloud_media/; } } }