有没有办法配置 HAProxy 在发送到后端服务器时将 GET 请求转换为 POST?
问题的背景是,我们想要使用基于云的日志服务(例如 loggy.com),该服务仅允许通过 POST 到其 REST API 创建日志事件。当我们的小部件加载到网页上时,将通过浏览器中的 Javascript 创建日志事件,因此出于 CSRF 预防,我们无法执行 POST。
除了设置将 GET 转换为 POST 的代理之外,还有其他更好的方法吗?
答案1
像这样的事情应该可以解决问题:
backend HttpServers
mode http
balance roundrobin
option httpchk
reqirep ^GET\s+(https?:/.*)$ POST\ \1
关键的是最后一行。
答案2
出于多种原因,我建议不要在客户端浏览器上使用 javascript 生成事件,首先是出于安全考虑。
与您选择的供应商合作,确定将您的 Web 服务器日志带入服务的最佳方式,但抓取该文本文件而不是尝试让客户端浏览器直接向事件 API 发送请求将使您的生活变得更加轻松。