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 browser # Always proxy to root with the same page request when nginx 404s error_page 404 /; proxy_intercept_errors on; proxy_set_header Host ${VAR_PREFIX}host; proxy_pass http://${FRONTEND_NAME}:3000/; } location ~ ^/(api|media)/ { proxy_set_header X-Forwarded-Proto ${VAR_PREFIX}scheme; proxy_set_header X-Real-IP ${VAR_PREFIX}remote_addr; proxy_set_header Host ${BACKEND_NAME}; include uwsgi_params; proxy_pass http://${BACKEND_NAME}:8001; } # needed for webpack-dev-server location /ws { proxy_pass http://${FRONTEND_NAME}:3000; proxy_http_version 1.1; proxy_set_header Upgrade ${VAR_PREFIX}http_upgrade; proxy_set_header Connection "upgrade"; } # Django media location /protected_media { internal; alias /protected_media/; } location /static/drf-yasg { proxy_pass http://${BACKEND_NAME}:8001; } location /data { internal; alias /data/; } # Original Photos location /original { internal; alias /data/; } # Nextcloud Original Photos location /nextcloud_original { internal; alias /data/nextcloud_media/; } } }