解决Nginx转发图片不能显示的问题

 更新时间:2024年11月08日 09:00:56   作者:paul_hch  
在使用Nginx作为反向代理将iServer的HTTP协议转换为HTTPS协议时,可能会遇到静态资源无法加载、页面跳转回HTTP协议、访问服务管理界面权限问题等情况,本文给大家介绍解决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代理总是跳转登录页面

https://blog.csdn.net/supermapsupport/article/details/127074609

到此这篇关于解决Nginx转发图片不能显示的文章就介绍到这了,更多相关Nginx转发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 详解Nginx的配置函数对于请求体的读取

    详解Nginx的配置函数对于请求体的读取

    这篇文章主要介绍了Nginx的配置函数对于请求体的读取,深入Nginx的内核配置中进行讲解,需要的朋友可以参考下
    2015-12-12
  • Nginx之proxy_redirect使用详解

    Nginx之proxy_redirect使用详解

    这篇文章主要介绍了Nginx之proxy_redirect使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Nginx/Openresty中启用http2支持的方法教程

    Nginx/Openresty中启用http2支持的方法教程

    Openresty/Nginx默认是不支持http2的,需要将http2模块编译进应用中。这篇文章主要给大家介绍了关于在Nginx/Openresty中启用http2支持的方法教程,文中介绍的非常详细,对大家具有一的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Nginx的超时timeout配置详解

    Nginx的超时timeout配置详解

    本篇文章主要介绍了Nginx的超时timeout配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • linux下Nginx 0.8.40的安装方法

    linux下Nginx 0.8.40的安装方法

    这篇文章主要介绍了linux下Nginx 0.8.40的安装方法,需要的朋友可以参考下
    2014-11-11
  • nginx配置文件使用环境变量的操作方法

    nginx配置文件使用环境变量的操作方法

    Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,所以深受用户喜爱,今天小编给大家分享nginx配置文件使用环境变量的操作方法,感兴趣的朋友一起看看吧
    2021-06-06
  • Nginx配合Apache或Tomcat的动静分离基本配置实例

    Nginx配合Apache或Tomcat的动静分离基本配置实例

    这篇文章主要介绍了Nginx配合Apache或Tomcat的动静分离基本配置实例,实际上Nginx专门负责静态和反向代理是主流服务器配置方案,需要的朋友可以参考下
    2016-01-01
  • nginx前缀匹配的实现

    nginx前缀匹配的实现

    在nginx的配置文件中,很容易的看到location的模块,本文主要介绍了nginx前缀匹配的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • 在Nginx服务器上安装SSL证书完成HTTPS请求的步骤详解(springboot项目)

    在Nginx服务器上安装SSL证书完成HTTPS请求的步骤详解(springboot项目)

    这篇文章主要介绍了在Nginx服务器上安装SSL证书完成HTTPS请求(springboot项目),首先需要下载证书到本地接着在Nginx独立服务器上安装证书,本文给大家介绍的非常详细,需要的朋友参考下吧
    2022-04-04
  • 详解nginx进程锁的实现

    详解nginx进程锁的实现

    nginx是多进程并发模型的应用,但为了网络请求的安全性,必须要使用到锁,那么这个进程锁如何实现呢
    2021-06-06

最新评论