我有很多静态页面,包括 html 文件 + js(SCORM 包)。我有动态页面,也包含与静态页面 JS 对话的 JS。
静态页面在 iframe 中打开,我们从第三方(SCORM 内容)按原样获取它们,因此不可能对其进行任何更改。
为了提高性能和集中化,我们希望将所有静态文件放在带有 lighthttp 的专用服务器上。
问题:现在动态页面(通过 Apache 提供)中的 js 没有权限与 light-http 托管页面通信。
两者的域相同,但端口不同。
关于如何实现这一点有什么建议吗?
答案1
确保动态和静态内容都位于同一个域和端口号下(我的错误是由于 JavaScript '沙盒')。这可以通过代理从一个服务器或另一个服务器中选择的请求来实现。
基本上有三个选项:1. 在端口 80 上设置 Lighttpd,让它将对动态内容的请求代理(转发)到另一个端口或机器上的 Apache 2. 在端口 80 上设置 Apache,让它将对静态内容的请求代理(转发)到另一个端口或机器上运行的 Lighttpd 3. 设置单独的代理服务器,将静态内容请求转发到一台服务器,将动态请求转发到另一台服务器
两种情况下都需要“mod_proxy”(适用于相应的服务器)。在情况 2 中,如果重定向的 URL 不在公共前缀下,mod_rewrite 可能会有用。
我更喜欢选项 1,因为端口 80 上的服务器需要处理所有请求(它完全服务的请求和转发的请求),然后让它成为更轻松的过程。