在我见过的几乎所有使用 nginx 和 SSL 支持设置 Varnish 的示例中,设置是 Varnish 在端口 80 上运行,nginx 在端口 443 上运行用于 SSL 终止,而 nginx 运行在另一个端口上执行与后端通信的实际工作。
鉴于现在大多数网站都将端口 80 重定向到 443,那么在端口 80 上运行 Varnish 有什么优势?
为什么不让 nginx 在端口 80 上运行,对 HTTPS 版本执行 301,在端口 443 上运行的 nginx 执行 SSL 终止并代理到在不同端口上运行的 Varnish,而 nginx 再次在另一个端口上运行实际工作?
HTTP:nginx [80] (301)
HTTPS:nginx [443] <> Varnish [6081] <> nginx [8080] <> 后端
我真的看不出在房子前面的端口 80 上使用 Varnish 只是为了进行重定向有什么好处。除非,重定向和将端口号添加到 URL 存在一些问题?也许添加 3 个 nginx 服务器块会为设置添加“更多”工作,但是必须配置 Varnish 以重定向端口 80,除非它是内部的,这似乎是“更多”工作。
额外问题:当 nginx 已经在使用中时,为什么在大多数这些设置中添加 Apache,反之亦然?它们都可以处理 SSL 终止和代理。
最佳答案
我同意“为什么不这样”:
HTTP: nginx [80] (301)
HTTPS: nginx [443] <> Varnish [6081] <> nginx [8080] <> backend
至于原因:
HTTP: Varnish [80] (conditional 301, using VCL)
HTTPS: nginx [443] <> Varnish [80] <> nginx [8080] <> backend
答案是:关于nginx - 为什么在端口 80 上运行 Varnish 仅用于 HTTPS 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59401232/