如何在Mac上设置反向代理?

问题描述 投票:6回答:2

我目前正在我的Mac上开发一个JavaScript(Sencha)应用程序,它与http REST服务接口。

该服务已经存在于其他地方(在另一个域上),我无法控制它。由于我在自己的Mac上开发应用程序,http请求当前是跨域的,因此除非我禁用浏览器安全性,否则它们不起作用。

我的一位朋友在PC上工作说他的解决方案是使用Apache建立一个反向代理,以某种方式使应用程序(谁的域是localhost)认为该服务的域也是localhost。我不完全确定他的意思,也不知道如何在我的Mac上做到这一点。有什么建议?

javascript macos rest extjs reverse-proxy
2个回答
4
投票

Apache确实可以做反向代理,但是为了你自己,我建议你不要使用Apache(这是不必要的大。)

虽然你可以做很多事情,但我个人会做的是安装Nginx网络服务器并更改配置以使用proxy_pass。它并不十分困难,但如果你已经知道如何从源代码构建软件,它就会特别简单。一个快速的谷歌导致a guide on exactly this - 从那里,你只需要改变你的./conf/nginx.conf文件,以满足您的需求。

专用代理软件可能是一个更好的解决方案,但你不需要专用代理软件的所有功能,你当然不需要Apache Web服务器的所有功能(或Nginx,真的,但Nginx是至少略小一些。)


1
投票

对于那些寻求强大而又免费的解决方案的人来说,mitmproxy可以充当reverse proxy。它是一个命令行工具,但具有交互式CLI,还提供Web界面。你可以直接download it here,它只是一个二进制文件。

要将其作为反向代理运行,只需运行它

./mitmproxy --mode "reverse:https://real-destination.example.com"

然后让您的客户端连接到https://localhost:8080。所有请求都转发到https://real-destination.example.com并且TLS被分解,因此您可以查看数据包(通常您必须在系统上使用install the CA Certificate of mitmproxy并将其标记为可信任才能使其工作)。

对于那些寻求具有交互式UI的解决方案,一个更高级别的解决方案,为您完成所有系统配置,并且不介意花费一些钱,Charles也可以充当reverse proxy,它允许您从内部配置所有内容UI应用程序。 Charles也可以在App Store上用于iOS。

© www.soinside.com 2019 - 2024. All rights reserved.