Gro*_*ppe 6 javascript rest macos reverse-proxy extjs
我目前正在我的Mac上开发一个Sencha(Javascript)应用程序,它通过http请求与后端REST服务连接.该服务已经存在于其他地方(在另一个域上),我无法控制它.由于我在自己的Mac上开发应用程序,http请求当前是跨域的,因此除非我禁用浏览器安全性,否则它们不起作用.我的一位在PC上工作的朋友表示,他的解决方案是使用Apache建立一个反向代理,以某种方式使应用程序处于开发阶段(谁的域名为localhost)认为该服务的域名也是localhost.我不完全确定他的意思,也不知道如何在我的Mac上做到这一点.有什么建议?
Apache 确实可以做反向代理,但为了您自己的利益,我建议您不要使用 Apache(它太大了。)
尽管您可以做很多事情,但我个人会做的是安装 Nginx Web 服务器并更改配置以使用proxy_pass。这并不是很难,但如果您已经知道如何从源代码构建软件,那就特别简单。快速谷歌一下就可以找到关于这一点的指南- 从那里开始,您只需./conf/nginx.conf根据需要更改文件即可。
专用代理软件可能是更好的解决方案,但是您不需要专用代理软件的所有功能,当然也不需要 Apache Web 服务器(或 Nginx,实际上,但 Nginx 是至少稍微小一点。)
对于那些寻求强大而免费的解决方案的人来说,mitmproxy可以充当反向代理。它是一个命令行工具,但具有交互式 CLI,还提供了一个 Web 界面。你可以直接在这里下载它,它只是一个二进制文件。
要将其作为反向代理运行,只需运行它
./mitmproxy --mode "reverse:https://real-destination.example.com"
然后让您的客户端连接到https://localhost:8080. 所有请求都被转发到https://real-destination.example.com并且 TLS 被分解,因此您可以查看数据包(通常您必须在您的系统上安装 mitmproxy 的 CA 证书并将其标记为受信任才能使其工作)。
对于那些寻求具有交互式 UI 的解决方案的人来说,更高级的解决方案可以为您完成所有系统配置,并且不介意为此花一些钱,Charles还可以充当反向代理,它允许您配置从在 UI 应用程序中。Charles 也可在 App Store 上获得 iOS 版本。