Closed strugglesharp closed 2 months ago
因为反向代理后header 没有正确配置,导致未识别到正确域名. 解决方法有2种:
- 代理转发设置携带上协议/端口/域名
- 指定站URL: 在主程序目录新建文件config/define.php 内容如下(已创建则追加)
// 替换自己的域名及端口,在子目录的需要加上子目录
define('APP_HOST','https://server.com:4433/');
测试未发现该问题.可能是服务器配置问题;导致后端没有正确识别到请求头中的端口 正常https默认443端口,如果是自定义别的端口, 使用了代理转发,需要带上转发的header头 X_FORWARDED_HOST/X_FORWARDED_SERVER
识别逻辑如下:
方便的话提供个http访问的链接和账号,并提供一下https自定义端口异常链接; email:warlee#kodcloud.com
测试未发现该问题.可能是服务器配置问题;导致后端没有正确识别到请求头中的端口 正常https默认443端口,如果是自定义别的端口, 使用了代理转发,需要带上转发的header头 X_FORWARDED_HOST/X_FORWARDED_SERVER
识别逻辑如下:
方便的话提供个http访问的链接和账号,并提供一下https自定义端口异常链接; email:warlee#kodcloud.com
明白了. 我确实用了代理转发. 如果不是443口, 默认就用了X_FORWARDED_HOST/X_FORWARDED_SERVER. 但是我觉得, 其实你直接用最开始的那个url就行, 没有必要重算url, 应该能获取到这个url吧? 既然一开始url能访问, 后续一定也能继续访问. 沿用最开始的url应该时胜算最大的.
您说的方法, 我也会去试试. 关键就在 ngnix上. 可惜我首先对ngnix掌握不成体系, 遇到问题都是网上乱copy. 另外,我用的时 1panel+ docker中的OpenResty, 还不是标准的ngnix, 想设 X_FORWARDED_HOST/X_FORWARDED_SERVER 那就更难找了.
这个网络架构巨复杂, 写起来比较费劲也很难被看懂. 粗略的说就是 docker中 kodbox 在 1panel中, docker中的OpenResty提供了反代, 两次NAT做了两次端口映射, 阿里云dns+运行在1panel中的脚本做了DDNS(此问题跟这个应该没有关系), 我先自己尝试解决. 如果实在不行, 再把账号+详细网络架构发到您邮箱.
“但是我觉得, 其实你直接用最开始的那个url就行, 没有必要重算url, 应该能获取到这个url吧”
代理转发后,最后服务器接处理时获取到的请求已经不是最开始浏览器发出的 URL 了,这时候如果没有相关 header 是拿不到最初的 URL 的。
杭州可道云网络有限公司
------------------ 原始邮件 ------------------ 发件人: strugglesharp @.> 发送时间: 2024年6月28日 20:59 收件人: kalcaddle/kodbox @.> 抄送: warlee @.>, State change @.> 主题: Re: [kalcaddle/kodbox] 使用带端口的url时, 第二条http通讯就会把端口号丢了 (Issue #279)
测试未发现该问题.可能是服务器配置问题;导致后端没有正确识别到请求头中的端口 正常https默认443端口,如果是自定义别的端口, 使用了代理转发,需要带上转发的header头 X_FORWARDED_HOST/X_FORWARDED_SERVER
识别逻辑如下:
方便的话提供个http访问的链接和账号,并提供一下https自定义端口异常链接; email:warlee#kodcloud.com
明白了. 我确实用了代理转发. 如果不是443口, 默认就用了X_FORWARDED_HOST/X_FORWARDED_SERVER. 但是我觉得, 其实你直接用最开始的那个url就行, 没有必要重算url, 应该能获取到这个url吧? 既然一开始url能访问, 后续一定也能继续访问. 沿用最开始的url应该时胜算最大的.
您说的方法, 我也会去试试. 关键就在 ngnix上. 可惜我首先对ngnix掌握不成体系, 遇到问题都是网上乱copy. 另外,我用的时 1panel+ docker中的OpenResty, 还不是标准的ngnix, 想设 X_FORWARDED_HOST/X_FORWARDED_SERVER 那就更难找了.
这个网络架构巨复杂, 写起来比较费劲也很难被看懂. 粗略的说就是 docker中 kodbox 在 1panel中, docker中的OpenResty提供了反代, 两次NAT做了两次端口映射, 阿里云dns+运行在1panel中的脚本做了DDNS(此问题跟这个应该没有关系), 我先自己尝试解决. 如果实在不行, 再把账号+详细网络架构发到您邮箱.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.Message ID: @.***>
“但是我觉得, 其实你直接用最开始的那个url就行, 没有必要重算url, 应该能获取到这个url吧”
代理转发后,最后服务器接处理时获取到的请求已经不是最开始浏览器发出的 URL 了,这时候如果没有相关 header 是拿不到最初的 URL 的。
杭州可道云网络有限公司 …
感谢大力支持. 此问题已经被解决. 就是按照前面指出的思路.
比如我的 域名是 abc.com 指向了我的一个外网ip 因为443已经被别的占用了, 所以我给kod分的口是40443 最终 url是 https://kod.abc.com:40443/ 但是从 调试窗口看, 除了我手敲的第一个 http连接是 https://kod.abc.com:40443/ 后面都是 https://kod.abc.com/xxxx 那肯定是访问不了了.