如何使 Guacamole 的 RDP‘显示更新’虚拟通道’选项通过 SSL nginx 反向代理运行?
我已在虚拟机中配置并运行 Apache Guacamole。当我通过 http://guac:8080/ 直接通过 guac 虚拟机访问 RDP 桌面时,桌面会随着浏览器窗口大小的调整而调整大小。
当我访问相同的桌面通过 SSL nginx 反向代理,RDP 桌面调整大小不起作用。
我正在使用推荐的 nginxlocation
块:
location /guac/ {
proxy_pass http://guac:8080/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
client_max_body_size 1g;
access_log off;
}
guac 和 nginx 主机都是 FreeBSD 14.0 vms,但我在 aarch64 Linux VM 中的 docker 容器中运行 guac 和 nginx 也有相同的经历,所以我认为平台与此无关。
为什么调整大小不能通过反向代理进行,我该如何解决这个问题?
答案1
将以下行添加到location
上面的块中可以修复此问题。
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
添加此行后,RDP 桌面现在在通过 SSL nginx 代理时会根据浏览器的大小调整大小。
我尝试了几个nginx 的许多 proxy_* 选项,但最终都不需要。只需要 Cache-Control 标头。