首页 > 系统相关 >解决Nginx转发图片不能显示【转】

解决Nginx转发图片不能显示【转】

时间:2024-11-08 08:45:59浏览次数:4  
标签:HTTP sub ssl 代理 filter Nginx 转发 图片

背景:最近很多小伙伴使用Nginx代理iServer,将HTTP协议成HTTPS协议,但是可能会出现以下几种情况:
(1) 图片、js、css等静态资源无法加载

 

(2)代理后页面跳转回HTTP协议

 

(3)代理后访问服务管理界面提示“该用户无查询服务访问统计信息权限”

 

针对上述情况应该如何解决问题呢?其实这些问题都是因为代理后丢失https协议,导致请求变成http,下面我将详细讲解如何避免这个问题。
本文采用的OpenSSL去生成公钥和私钥。生成密钥的方式可以参考博客(
Nginx代理iServer的HTTP协议成HTTPS)介绍得比较详细,在此就不做多余的说明了。
首先我们需要引入一个Nginx知识:sub_filter模块为Nginx官方自带的模块,功能为替换掉返回给客户端数据的指定内容。需要使用该功能时只需要在编译时添加对该模块的支持,便会编译到Nginx的内核。本需介绍的方式就是利用sub_filter将HTTP替换成HTTPS。
sub_filter语法包括:
sub_filter_types:*; 需要替换的类型,如text/htnl text/plain application/ javascript等,以空格分隔,默认只查找文本型文件;
sub_filter_once: on/off; 是否只替换一次,on是开启此功能,off是关闭——默认值是on;
sub_filter: xxx1 xxx2; 前面的参数为原始内容,后面的参数为替换后的内容。
Nginx配置说明:

# https配置
    server {
        listen       8000 ssl;
        server_name  ip;
        ssl_certificate      nginxRSAcert.pem;
        ssl_certificate_key  nginxRSAcert.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            proxy_pass   http://ip:8090;
            proxy_set_body $request_body;
            proxy_set_header Accept-Encoding "";
            proxy_set_header Host $host:8000;
            sub_filter_once off;
            sub_filter_types *;
            sub_filter 'http://ip:8000/iserver' 'https://ip:8000/iserver';
        }
  }

 

结果验证:
(1)图片、js、css静态资源正常加载

 

(2)代理后页面跳转回均为HTTPS协议

 

(3)代理后访问服务管理界面正常

 

转自

解决Nginx代理iServer的HTTP协议成HTTPS后页面出现跳转回HTTP协议的情况_nginx代理总是跳转登录页面-CSDN博客
https://blog.csdn.net/supermapsupport/article/details/127074609

标签:HTTP,sub,ssl,代理,filter,Nginx,转发,图片
From: https://www.cnblogs.com/paul8339/p/18534383

相关文章

  • 织梦如何去除img图片中的style width height属性
    问题:在做响应式模板时,图片无法自适应,原因是织梦编辑器在上传图片时会自动加上 style、width 和 height 属性。解决方法:修改 article_add.php 文件:打开 dede/article_add.php 文件。搜索以下代码:$body=AnalyseHtmlBody($body,$description,$litpic,$keyw......
  • 织梦图片集上传图片不能上传 弹出提示“302”的解决办法
    问题:在DedeCMS图片集上传图片时弹出提示“302”。解决方法:修改 userlogin.class.php 文件:打开 include/userlogin.class.php 文件。在文件的第二行 session_start(); 前添加以下代码:if(isset($_POST['PHPSESSID'])){session_id($_POST['PHPSESSID']);......
  • PHP与Apache、Nginx的性能对比与优化技巧
    PHP与Apache、Nginx的性能对比与优化技巧在现代web开发中,PHP作为一种常见的服务器端脚本语言,通常需要与Web服务器(如Apache和Nginx)配合使用。Apache与Nginx各自的架构特点和性能表现有很大的不同,因此在PHP应用的部署过程中,选择合适的Web服务器并对其进行优化至关重要。Apache与N......
  • 安装Nginx-Web服务
    安装Nginx-Web服务准备k8s集群需要的k8s对象Namespace用来隔离对象资源,name=app-namespace-nginxServiceServiceAPI是Kubernetes的组成部分,它是一种抽象,帮助你将Pod集合在网络上公开出去。每个Service对象定义端点的一个逻辑集合(通常这些端点就是Pod)以及如......
  • nginx 部署2个相同的vue
    起因:最近遇到一个问题,在前端用nginx部署vue,发现如果前端有改动,如果不适用热更新,而是直接复制项目过去,会404因此想到用nginx负载两套相同vue项目,然后一个个复制vue项目就可以了。 废话不多:一在nginx下创建两个vue的路径 二修改nginx的配置文件worker_processes......
  • Vue3 - 详细实现虚拟列表前端虚拟滚动列表解决方案,vue3长列表优化之虚拟列表,解决列表
    前言Vue2版本,请访问这篇文章在vue3项目开发中,详解实现虚拟列表高度不固定(不定高)且复杂含有图片视频等复杂虚拟列表教程,决列表每项高度不确定及img图像或视频的加载方案,利用缓冲区技术解决用户浏览时渲染不及时列表闪烁白屏/列表加载闪屏,解vue3实现虚拟列表优化大......
  • nginx域名映射
    nginx域名映射域名映射是指将域名与IP地址相对应的过程。在互联网中,每个计算机都有一个唯一的IP地址,用于标识它在网络中的位置。但是,IP地址通常比较难记忆和理解。为了方便用户使用,域名被引入到互联网中,它们可以用来代替IP地址来访问网站。域名映射的过程将域名转换为IP地址,使......
  • SpringBoot图片创作分享平台的设计与实现7l7cf 文末可获取,系统界面在最后面。
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,图片橱窗开题报告内容一、选题理由随着互联网技术的飞速发展和社交媒体的普及,图片已成为人们日常交流和分享的重要载体。然而,当前市场上的图片分......
  • 纯前端图片压缩神器 Compressor
    点赞+关注+收藏=学会了本文简介本文可在公众号「德育处主任」免费阅读现在大部分网站都会有图片,不管这个图片是用来展示的,还是需要上传到服务器的。但图片的体积往往比文字大,会占用更多的服务器空间,也会消耗用户更多的流量。所以在适当范围内压缩一下图片是很有......
  • 能粘贴WORD 内容(含图片)的文本编辑器
    编辑器:百度ueditor前端:vue2,vue3,vue-cli,html5需求:复制粘贴word内容图片,word图片转存交互,导入pdf,导入PowerPoint(PPT)要求:开源,免费,技术支持用户体验:Ctrl+V快捷键操作该说不说,最近这块应该也是挻火的,今天早上又有网友加我微信私聊,说是想了解一下这块的技术和方案。实......