我最近受到了一个博客文章AudioBox 介绍了他们使用 Amazon EC2 的一些经验以及他们为什么改用自管理 VPS。虽然 EC2 服务确实看起来很有用,但对于我应该能够自行设置的东西来说,它们似乎有点贵。
这对我来说是未知领域,但我学得很快。经过一番折腾,我设法设置了一个简单的网络,其中有一个在 Nginx 上运行的负载均衡器、一个数据库服务器和两个后端服务器。我正在使用 chef 配方按需配置所有这些节点。以下是我nginx.config
使这一切正常工作的基本方法:
upstream backend {
ip_hash;
server backend1.mydomain.net:8080;
server backend2.mydomain.net:8080;
}
server {
listen 80;
server_name mydomain.net;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://backend;
break;
}
}
}
其中一个后端服务器位于欧盟,其他所有服务器目前都位于纽约数据中心。我想知道如何解决网络延迟问题?例如,欧盟的客户是否总是必须通过我在纽约的负载均衡器才能到达我的欧盟后端?我是否应该向我的欧盟后端添加额外的负载均衡器和数据库服务器,以进一步减少欧盟客户的延迟?我如何确保请求始终路由到最近的可用节点?
奖励问题
虽然我目前的设置有效,但这只是因为我设法将各种博客文章等中的片段拼凑在一起。我真的不清楚所有这些概念是如何结合在一起的。有没有好的资源可以描述这个范例,我可以在我的旅程中参考?
答案1
在您的上游,您可以根据延迟、优先级等设置与此相关的一系列指令 ;-)