负载均衡使用的阿里slb,tomcat部署在阿里云centos7服务器上
浏览器到slb为https,slb到tomcat为http,已在slb上勾选传递 X-Forwarded-Proto,tomcat上也已配置对protocolHeader
程序启动后获取到的scheme始终为http,抓包检查slb到tomcat的数据,也确实传递有 X-Forwarded-Proto: https
后来偶然发现通过slb获取到的scheme错误,而通过ssh做本地端口转发,相同数据包,走本地端口转发时,tomcat上能够获取到正确的scheme。本地端口转发时tomcat获取到的客户端ip为127.0.0.1,slb时tomcat获取到的ip为100.x.x.x。
动态调试tomcat,发现是internalProxies导致的,查询相关文档(https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/valves/RemoteIpValve.html)。发现需要配置 internalProxies。
默认情况下internalProxies为10/8, 192.168/16, 169.254/16, 127/8, 172.16/12, and ::1
internalProxies控制可信ip范围, 在该范围中的ip才会使用header中传递的X-Forwarded-Proto等数据
]]>使用 http://xxx.com:8888/jrebelusername 这样的地址无法激活了
需要修改为 http://xxx.com:8888/88414687-3b91-4286-89ba-2dc813b107ce 这样的地址
如:http://192.168.123.12:8888/88414687-3b91-4286-89ba-2dc813b107ce
后面的那串为GUID,随便找个GUID在线生成器生成个就行了
从老版本升级到该版本的不受影响,激活后一定手动要切换到离线模式,可离线180天,可随时重点下,180天周期会重新刷新
]]>使用步骤:
Dockerfile 在 https://github.com/ilanyu/rpi-ocserv
内置了 0.11.9版的 ocserv、udp-broadcast-relay、0.16.0版的 frp(均为写博客时的最新版)
树莓派上具体使用方法如下:
]]>v1.1版在这里:http://blog.lanyus.com/archives/189.html
v1.2版在这里:http://blog.lanyus.com/archives/228.html
v1.3版在这里:http://blog.lanyus.com/archives/231.html
v1.4版在这里:http://blog.lanyus.com/archives/305.html
v1.5版在这里:http://blog.lanyus.com/archives/314.html
更新说明:
修改默认端口为1027
]]>info.phpPHP Variables中找到自己客户端IP(使用浏览器打开ipip.net可看到), 我这里看到$_SERVER['HTTP_X_REAL_FORWARDED_FOR']后面为我的IP.config.inc.php, 在 <?php后面换行, 添加 define('__TYPECHO_IP_SOURCE__', 'HTTP_X_REAL_FORWARDED_FOR');, HTTP_X_REAL_FORWARDED_FOR为第1步中找到的字符串.info.php, 修改完毕.使用方法:
./ReverseProxy_[OS]_[ARCH] -h
Usage of ReverseProxy_[OS]_[ARCH]:
-l string
listen on ip:port (default "0.0.0.0:8888")
-r string
reverse proxy addr (default "http://idea.lanyus.com:80")
./ReverseProxy_windows_amd64.exe -l "0.0.0.0:8081" -r "https://www.baidu.com"
Listening on 0.0.0.0:8081, forwarding to https://www.baidu.com
默认反代idea.lanyus.com, 运行起来后, http://127.0.0.1:8888/JRebel用户名 就是激活地址了, 邮箱随意填写, 当然, 也可用于idea
也可以在Docker中使用
docker pull ilanyu/golang-reverseproxy
docker run -d -p 8888:8888 ilanyu/golang-reverseproxy
]]>