如何在Windows服务器上为传出的HTTP和HTTPS请求设置转发代理?

问题描述:

我有一个windows server 2012 VPS在Cloudflare后面运行一个web应用程序。该应用需要根据用户操作启动出站连接(例如,从URL上传图像)。问题是,这“泄漏”了我的服务器的IP地址,并增加了DDOS攻击的风险。如何在Windows服务器上为传出的HTTP和HTTPS请求设置转发代理?

因此,我想通过设置转发代理来阻止我的服务器的IP被发现。到目前为止,我的研究表明,这不是一项简单的任务,而是要建立另一个VPS作为代理。

这个额外的转发代理VPS是否必须运行Windows?他们的任何付费服务是否可以充当我的服务器的正向代理(如cloudflare的反向代理系统)?

此外,似乎建议的IIS转发代理插件Application Request Routing不适用于HTTPS。

对于两种类型的传出(HTTPS + HTTP)请求是否都有解决方案?

我真的迷失在这里,所以任何帮助或建议,将不胜感激。

你需要一个“正向代理”是正确的。一个很好的比喻是你的浏览器对出站请求的代理设置。就你而言,Web应用程序的行为类似于桌面浏览器,可以配置为通过代理进行资源请求。

通常,您可以在应用程序层控制个别请求。用C#这样的例子:C# Connecting Through Proxy

至于实际的代理服务器:不,它并不需要运行Windows或IIS。是的,您可以使用代理服务。绝大多数代理服务都针对消费者,用于个人隐私或避开网络限制。因此,我没有直接的建议。

Cloudflare实际上有这方面的建议:https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/

像“从URL上传”这样的功能允许用户上传来自给定URL的照片,应该进行配置,以便下载的服务器不是网站原始服务器。

这可能是一个更舒适的风险缓解器,因为它不依赖于第三方代理服务。上传请求可以作为对专用“文件下载器”服务器的Web服务调用来处理。 请记住,如果您有另一个服务器的排队进程来完成这项工作,并且该服务器托管在相同的基础架构中,则两者都可能受到DDoS的影响,具体取决于DDoS的类型。

你的问题意味着你可能会很舒服使用非Windows服务器。 存在许多可作为代理(大多数Web服务器)运行的软件,但存在与ARR相同的问题 - 缺少对HTTP“CONNECT”谓词的支持,现代浏览器在发出“得到”。 SQUID非常流行,开源,并支持一切连接..任何东西。这不是微不足道的设置。 Apache在“mod_proxy_connect”中也有这方面的支持,但我没有这方面的经验,在线文档也不是很健壮。不过,这是Apache,因此可能值得进行额外的调查。