请教 Nginx 反代页面含有frame框架问题
源站页面内容通过框架调用,[*]复制代码,现在通过在反代服务器上安装证书的方式来反代该站点实现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]