Willy
(Willy)
1
我对负载均衡器的使用不太熟悉,但这次我真的需要使用它。
假设我的网站叫 badthreadcomments.com。每次用户进入我的网站,他们的请求都会被发送到我在 VPS 上配置的负载均衡器,这个负载均衡器应该将请求发送到托管在同一 VPS 上的 Discourse,然后 Discourse 会响应我的负载均衡器,但是等等,Discourse 生产环境使用文档说:
“Discourse 不能通过 IP 地址工作;您必须拥有一个像 example.com 这样的域名才能继续。”
我的想法是负载均衡器和 Discourse 都托管在同一个 VPS 上,所以我的负载均衡器和 Discourse 之间的通信是 100% 本地的,那么,如果生产环境需要域名,我该怎么办?这里的计划是什么?再买一个域名?如果需要第二个域名,这会不会增加客户端的延迟?
Falco
(Falco)
3
这意味着客户端必须通过域名访问 Discourse。在内部,在最后一个面向客户的反向代理/负载均衡器后面,您可以随心所欲。
1 个赞
Willy
(Willy)
4
那么顺序应该是这样的吗?
badthreadcomments.com > Discourse Docker > Load Balancer > Response
不能是这样的吗?
badthreadcomments.com > Load Balancer > Discourse Docker > Response
我不明白你说的“在最后一个面向客户的反向代理/负载均衡器后面,你可以做任何你想做的事情。”是什么意思。
Falco
(Falco)
5
Discourse 在这方面与其他 Web 应用程序没有区别
graph TD
User[用户]
LoadBalancer[负载均衡器]
WebAppCluster[Discourse Web 应用集群,N 个相同实例]
Postgres[PostgreSQL]
Redis[Redis]
S3[对象存储]
User -->|请求| LoadBalancer
LoadBalancer -->|分发请求| WebAppCluster
WebAppCluster -->|读/写| Postgres
WebAppCluster -->|缓存| Redis
WebAppCluster -->|存储静态资源| S3
2 个赞
我建议您了解一下 Nginx Proxy Manager 的工作原理,以加深您的理解。