map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream apiserver { #edit your api port here ip_hash; server 127.0.0.1:7125; } upstream mjpgstreamer { #edit your webcam port here ip_hash; server 127.0.0.1:8081; } server { listen 80; listen [::]:80; access_log /var/log/nginx/mainsail-access.log; error_log /var/log/nginx/mainsail-error.log; #web_path from mainsail static files root /home/pi/mainsail; index index.html; server_name _; #max upload size for gcodes client_max_body_size 200M; location / { try_files $uri $uri/ /index.html; } location /printer { proxy_pass http://apiserver/printer; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location /api { proxy_pass http://apiserver/api; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location /access { proxy_pass http://apiserver/access; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location /websocket { proxy_pass http://apiserver/websocket; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 86400; } location /machine { proxy_pass http://apiserver/machine; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location /server { proxy_pass http://apiserver/server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location /webcam/ { proxy_pass http://mjpgstreamer/; } }