我无法从托管Nginx服务器的IP地址中的另一个端口提供内容。
这是我的。 sites-available
个文件
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/Cert.crt;
ssl_certificate_key /etc/ssl/certs/Cert.pem;
root /var/www/EX;
index default.html;
server_name 123.45.678.91;
location / {
try_files $uri $uri/ =404;
}
}
我正在尝试显示类似这样的kibana实例的信息
<div>
<iframe src="http://123.45.678.91:5601/app/kibana#/dashboard/<INDEX>" height="100%" width="100%"></iframe>
</div>
但是我遇到了Mixed content
错误。似乎不允许使用iframe,因为它来自http
而非https
请求。
关于如何解决此问题的任何想法?两种服务都托管在相同的IP上。
注意: 也尝试过
src="//123.45.678.91:5601/app/kibana#/dashboard/<INDEX>"
src="http://127.0.0.1:5601/app/kibana#/dashboard/<INDEX>"
src="/app/kibana#/dashboard/<INDEX>"
答案 0 :(得分:0)
现代浏览器不允许在安全网站上使用不安全的iframe内容。 因此,有两种解决方案
将iframe网址更改为 https ://123.45.678.91: 443 / app / iframe / content / kibana#/ dashboard /指数 并只需在nginx配置中添加新位置,如下所示。
location ~ /iframe/content {
...serve iframe content...
}
将iframe网址更改为 https ://123.45.678.91: 443 / app / iframe / content / kibana#/ dashboard /指数 并在nginx配置中添加新位置,它将代理传递给在同一nginx配置的不同服务器块中定义的不同端口号。
在安全端口服务器块中添加以下位置配置。
location ~ /iframe/content {
proxy_pass http://123.45.678.91:5601/$request_uri
}
并在如下所示的相同配置文件中创建另一个服务器块。
server {
listen 5601;
server_name 123.45.678.91;
location ~ /iframe/content {
...serve iframe content...
}
}
因此,在这种情况下,浏览器将不会意识到正在从其他端口提供内容,因此不会抱怨。