server { listen 80; root /usr/share/nginx/html; index index.html; location /api/ { proxy_pass http://api:3201/api/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_read_timeout 86400s; proxy_send_timeout 86400s; proxy_buffering off; } location /spark-ui/ { proxy_pass http://10.0.21.50:8080/; proxy_http_version 1.1; proxy_set_header Host 10.0.21.50:8080; proxy_hide_header X-Frame-Options; proxy_redirect http://10.0.21.50:8080/ /spark-ui/; sub_filter_once off; sub_filter 'href="/' 'href="/spark-ui/'; sub_filter 'src="/' 'src="/spark-ui/'; sub_filter "href='/" "href='/spark-ui/"; sub_filter_types text/css application/javascript text/html; } location /kafka-ui/ { proxy_pass http://10.0.21.36:9000/; proxy_http_version 1.1; proxy_set_header Host 10.0.21.36:9000; proxy_hide_header X-Frame-Options; proxy_redirect http://10.0.21.36:9000/ /kafka-ui/; sub_filter_once off; sub_filter 'href="/' 'href="/kafka-ui/'; sub_filter 'src="/' 'src="/kafka-ui/'; sub_filter_types text/html application/javascript text/css; } location /assets/ { add_header Cache-Control "public, max-age=31536000, immutable"; try_files $uri =404; } location = /index.html { add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; add_header Expires "0"; } location / { try_files $uri $uri/ /index.html; } }