Here it is. I think the upstream part is also important for letting nginx pass the uri unchanged (no url decode)
upstream collada-office {
server 127.0.0.1:9980;
}
server {
listen 443 ssl;
server_name office.example.com;
ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;
# static files
location ^~ /loleaflet {
proxy_pass https://collada-office;
proxy_set_header Host $host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://collada-office;
proxy_set_header Host $host;
}
# Main websocket
location ~ /lool/(.*)/ws$ {
proxy_pass https://collada-office;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 36000s;
}
# Admin Console websocket
location ^~ /lool/adminws {
proxy_buffering off;
proxy_pass https://collada-office;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ /lool {
proxy_pass https://collada-office;
proxy_set_header Host $host;
}
}