[问题背景]:
对PI KVM进行客制化时,需要实现以下效果:在https的主页面中,实现在iframe中访问http协议的资源(访问的资源仅支持http协议)。
或者说,https中通过iframe方式调用http资源(跨域)失败,控制台显示mixed content。
[问题解决]:
1.前置知识:
1.1.同源:
两个页面具有相同的协议(protocol),主机(host)和 端口号(port),即 “指在同一个域”。
1.2. 跨域:
违反上述三要素中的一个,即称为 “跨域访问”。
2.访问的资源支持https时的解决办法:
直接百度即可,网上提供的大多都是这类情况的解决办法。
3.访问的资源只支持http:
当我们访问服务器时,简易流程如下:
浏览器 >> nginx / 其它代理 >> 服务器具体内容
这里以使用nginx为例。nginx可以对需要访问的服务器做反向代理,来实现跨域访问。
具体步骤如下:
a. 找到nginx配置文件的位置:
我的nginx配置文件,将主要配置写在了单独文件 kvmd.ctx-server.conf 中,在nginx配置时,它会被include到nginx.conf中。所以这里我直接修改 kvmd.ctx-server.conf。