从 https Nginx rev Proxy socket.io 加载 URL http: 的不安全尝试
Posted
技术标签:
【中文标题】从 https Nginx rev Proxy socket.io 加载 URL http: 的不安全尝试【英文标题】:Unsafe attempt to load URL http: from https Nginx rev Proxy socket.io 【发布时间】:2020-04-13 21:13:24 【问题描述】:所以我有一个以 http 形式在 nginx 后面运行的应用程序......
我一直在测试该应用程序,似乎 https 工作正常,我发现的唯一问题是当我尝试单击弹出窗口中的链接时 另一个弹出窗口是空白的 在 devTools 控制台下,我收到以下错误...
Unsafe attempt to load URL http://dev84.mydomain.com/prweb/app/PegaRULES_/pbdorj4V2aBoI4ScEONLsEaxdEWiqDby*/SysWebInfo/MapWebInfo.xsl from frame with URL https://dev84.mydomain.com/prweb/app/PegaRULES_/pbdorj4V2aBoI4ScEONLsEaxdEWiqDby*/!STANDARD?pyActivity=%40baseclass.pzProcessURLInWindow&pyPreActivity=GetWebInfo&target=popup&portalThreadName=STANDARD&portalName=Developer&pzHarnessID=HID8FA7FD58600ED1BD74EB1DAA70BB4DA5. Domains, protocols and ports must match.
所以我认为我在我的 nginx conf 中遗漏了一些东西?我一直在玩以前的 confs,这些 confs 可以在没有套接字的类似版本的应用程序上工作,所以我看到这个版本几乎只适用于套接字配置,但我知道我错过了一些东西
server
listen 80;
server_name dev84.mydomain.com;
return 301 https://dev84.mydomain.com$request_uri;
server
server_name dev84.mydomain.com;
listen 443 ssl ;
location /
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_redirect off;
###################################################old conf#########
#proxy_set_header Host $http_host;
#proxy_set_header X-Forwarded-Host $http_host;
#proxy_set_header X-Forwarded-Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_connect_timeout 90;
#proxy_send_timeout 90;
#proxy_read_timeout 90;
#proxy_buffer_size 16k;
#proxy_buffers 32 8k;
#proxy_busy_buffers_size 64k;
#client_max_body_size 100M;
###################################################old conf#########
proxy_pass http://dev;
【问题讨论】:
“不安全地尝试加载 URL http” 现代浏览器禁止或强烈警告使用/链接到 HTTP 资源的 HTTPS 资源。所以这不是配置问题(这里是题外话,与编程无关),而是确保所有资源(iframe、字体、脚本、css 等)都在 https 方案下的问题。 PS:请不要混淆不清,也不要使用mydomain.com
,因为它存在并且肯定不是你的。您可以使用example.com
或example.net
对事物进行匿名化处理,尽管在大多数情况下,最好提供真实姓名,以便大家更轻松地解决问题,从而更好地帮助您。
【参考方案1】:
所以在深入挖掘之后,这个 conf 对我有用...
server
server_name dev84.mydomain.com;
listen 443 ssl ;
location /
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://dev;
【讨论】:
以上是关于从 https Nginx rev Proxy socket.io 加载 URL http: 的不安全尝试的主要内容,如果未能解决你的问题,请参考以下文章
ngxin常用配置--nginx之proxy_pass代理后端https请求完全解析