Shiny 默认使用端口 3838,我需要它使用 HTTPS,但主站点也需要使用 HTTPS。到目前为止,我一直将 URL /shiny/ 代理到端口 3838,同时将主站点保留在端口 443 上,并使用 iframe 将 Shiny 内容嵌入到主页中,但这会发出警告,因为 Shiny 内容来自不同的端口/不是 HTTPS。
是否可以让 Shiny 使用 HTTPS,同时让 Apache httpd(主站点)也使用 HTTPS?
答案1
是的,您可以简单地将这些内容代理到/shiny
目录中,客户端就会将其视为常规子目录。
在您的 Apache vhost 配置中,输入如下内容:
ProxyPass /shiny http://127.0.0.1:3838/
ProxyPassReverse /shiny http://127.0.0.1:3838/
下面的所有内容/shiny
现在都将从 shiny 服务器获取。假设 shiny 正在监听 上的端口 3838 localhost
。
为了简单起见,您应该关闭 Shiny 的 HTTPS,让 Apache 专门处理 TLS。只要 Apache 和 Shiny 之间有安全连接,这完全没问题。