我目前使用 squid 作为本地网络的代理服务器,但我对它并不完全满意。Nginx 是否也适合用作本地网络上的代理服务器?它是否正在积极用于此目的?
答案1
nginx 可以被视为“反向”代理(由于其“上游服务器”功能)......当处于这个角色时,它实际上是一个“负载均衡器”。
“正常”代理,例如 squid http 代理、socks 等,代表最终用户获取内容,并位于最终用户前面,通过 TCP/IP 调用互联网网络服务器并理想地缓存内容。
nginx 作为反向代理运行时,位于服务器端点的前面,通常在它们之间进行负载平衡......因此“反向”......不适合您的需求。
Squid 将成为您的“常规” http 代理的最佳选择...该代理可以为其后面的最终用户获取和缓存内容。
答案2
实际上,NGINX 有很多功能。它可以配置为反向或正向(“正常”)代理。以下是 NGINX 的应用程序功能(能力)列表:
- Web 代理(反向或正向)
- API 代理
- 网络服务器
- 负载均衡器
- WAF(Web 应用程序防火墙)
- 内容缓存
- HTTP/2 网关
- TLS 终止点
如果您需要 3 个或更多这些功能,我会选择 NGINX,否则提供其中一两个功能的其他解决方案可能更合适(但需求会随着时间而改变,在这方面,NGINX 是一个占用空间较小的组件,可以提供灵活性并满足未来的发展点)。
答案3
Nginx 是一个 Web 服务器...所以它并不经常被用来替代 squid ;)
(Nginx 代理模式不同,它基本上用于将 http 请求传输到另一台服务器)