美文网首页
Nginx&Apache反向代理解决https站点无法展示htt

Nginx&Apache反向代理解决https站点无法展示htt

作者: 非常帅气的昵称吧 | 来源:发表于2021-01-14 16:41 被阅读0次

    随着浏览器安全策略的愈发严格, https和http的混合站点, 会出现各种无法展示的问题,本文即提供一种解决此问题的思路,使用Nginx&Apache反向代理来解决https站点无法展示http内容问题

    首先我们要改变有问题的链接, 例如我们的站点是 https://www.aaa.com, 页面需要展示http://www.bbb.com/video.mp4,
    我们可以把链接转换成如下形态:

    https://www.aaa.com/www.bbb.com/video.mp4

    这样我们就可以使用Nginx和Apache的rewrite功能,去拦截以一个域名为开始路径的链接, 然后获取对应文件内容,这样的好处是链接的后缀名可以保持不变,在safari和iphone上也能正常使用, 单纯的服务端获取转发, 音视频在苹果系统上是无法使用的

    下面来说下具体反向代理的配置

    Nginx

    location ~*^/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+/(.*) {
        proxy_force_ranges on;
        proxy_pass http:/$request_uri;
    }
    

    需要在nginx配置文件的http模块添加如下配置:

    resolver 8.8.8.8;
    

    Apache

     <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+)/(.*)$ http://$0 [P,L]
     </IfModule>
    

    需要开启如下模块:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    

    以上就是使用Nginx&Apache反向代理来解决https站点无法展示http内容问题的方法, 其余有什么更好的方法的话, 也可以留言或私信交流

    相关文章

      网友评论

          本文标题:Nginx&Apache反向代理解决https站点无法展示htt

          本文链接:https://www.haomeiwen.com/subject/gzpvaktx.html