请教 Nginx 反代页面含有frame框架问题
源站页面内容通过框架调用,<frame src="abc/123">,现在通过在反代服务器上安装证书的方式来反代该站点实现https访问。虽然用的是相对路径,但是在Chrome浏览器下显示的最终路径还是http的,所以就被默认屏蔽页面空白。
利用nginx的sub_filter 的替换功能,把"abc/123"替换成"$host/abc/123"这样的形式,再查看反代页面源代码时发现已经替换成功,框架路径是https了。
但是在Chrome下仍然被屏蔽,控制台里的错误信息显示框架仍然是http的。
因为没有源站权限,无法修改源站代码,只能在反代上想办法。
求大佬现身指点一下,谢谢。
没懂你啥意思,是frame里还有http? location/abc/123
{
重新proxy 替换ssl,反代替换整个框架里的网页;
} suwubee 发表于 2017-8-26 11:28
location/abc/123
{
重新proxy 替换ssl,反代替换整个框架里的网页;
感谢大佬指点,是http源站里面只有frame框架。
location ab/123
{
proxy
}
容器里的代码和location / 里的一样吗,是不是也这样就可以:
{
proxy_pass http://domain.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
expires 2d;
} 你试试看,可能要proxy_pass http://domain.com/abc/123;
但是一想也不对啊,如果都是这个域名,你又sub_filter了http,不应该还会出现http的,除非你sub_filter 开了on? proxy里一定要插入proxy_set_header Accept-Encoding "";
如果你源站开启了gzip,替换是不生效的
页:
[1]