解決Nginx轉(zhuǎn)發(fā)圖片不能顯示的問題
背景:最近很多小伙伴使用Nginx代理iServer,將HTTP協(xié)議成HTTPS協(xié)議,但是可能會出現(xiàn)以下幾種情況:(1) 圖片、js、css等靜態(tài)資源無法加載
(2)代理后頁面跳轉(zhuǎn)回HTTP協(xié)議
(3)代理后訪問服務(wù)管理界面提示“該用戶無查詢服務(wù)訪問統(tǒng)計信息權(quán)限”
針對上述情況應(yīng)該如何解決問題呢?其實這些問題都是因為代理后丟失https協(xié)議,導(dǎo)致請求變成http,下面我將詳細(xì)講解如何避免這個問題。本文采用的OpenSSL去生成公鑰和私鑰。生成密鑰的方式可以參考博客(Nginx代理iServer的HTTP協(xié)議成HTTPS)介紹得比較詳細(xì),在此就不做多余的說明了。首先我們需要引入一個Nginx知識:sub_filter模塊為Nginx官方自帶的模塊,功能為替換掉返回給客戶端數(shù)據(jù)的指定內(nèi)容。需要使用該功能時只需要在編譯時添加對該模塊的支持,便會編譯到Nginx的內(nèi)核。本需介紹的方式就是利用sub_filter將HTTP替換成HTTPS。sub_filter語法包括:sub_filter_types:*; 需要替換的類型,如text/htnl text/plain application/ javascript等,以空格分隔,默認(rèn)只查找文本型文件;sub_filter_once: on/off; 是否只替換一次,on是開啟此功能,off是關(guān)閉——默認(rèn)值是on;sub_filter: xxx1 xxx2; 前面的參數(shù)為原始內(nèi)容,后面的參數(shù)為替換后的內(nèi)容。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'; } }
結(jié)果驗證:(1)圖片、js、css靜態(tài)資源正常加載
(2)代理后頁面跳轉(zhuǎn)回均為HTTPS協(xié)議
(3)代理后訪問服務(wù)管理界面正常
本文轉(zhuǎn)自
解決Nginx代理iServer的HTTP協(xié)議成HTTPS后頁面出現(xiàn)跳轉(zhuǎn)回HTTP協(xié)議的情況_nginx代理總是跳轉(zhuǎn)登錄頁面
https://blog.csdn.net/supermapsupport/article/details/127074609
到此這篇關(guān)于解決Nginx轉(zhuǎn)發(fā)圖片不能顯示的文章就介紹到這了,更多相關(guān)Nginx轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx/Openresty中啟用http2支持的方法教程
Openresty/Nginx默認(rèn)是不支持http2的,需要將http2模塊編譯進(jìn)應(yīng)用中。這篇文章主要給大家介紹了關(guān)于在Nginx/Openresty中啟用http2支持的方法教程,文中介紹的非常詳細(xì),對大家具有一的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07Nginx配合Apache或Tomcat的動靜分離基本配置實例
這篇文章主要介紹了Nginx配合Apache或Tomcat的動靜分離基本配置實例,實際上Nginx專門負(fù)責(zé)靜態(tài)和反向代理是主流服務(wù)器配置方案,需要的朋友可以參考下2016-01-01在Nginx服務(wù)器上安裝SSL證書完成HTTPS請求的步驟詳解(springboot項目)
這篇文章主要介紹了在Nginx服務(wù)器上安裝SSL證書完成HTTPS請求(springboot項目),首先需要下載證書到本地接著在Nginx獨立服務(wù)器上安裝證書,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-04-04