首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用指向cloudflare dns的数字海洋液滴负载均衡器

使用指向cloudflare dns的数字海洋液滴负载均衡器
EN

Stack Overflow用户
提问于 2022-06-17 14:27:29
回答 1查看 843关注 0票数 1

使用数字海洋,我创造了一个负载平衡器,是连接到两个水滴。两个液滴都安装了NGINX,当我在浏览器上测试负载均衡器ip地址时,它正确地在液滴1和2之间切换。

现在的问题是,我希望将负载均衡器指向我在CloudFlare上创建的子域。让我们说我的域名是example.com。我想创建一个名为api.example.com的子域(它是Cloudflare上的一个记录)。这应该很简单。我在Cloudflare上创建了A记录,并将其链接到数字海洋负载均衡器ip地址。

当我试图查看api.example.com是否在浏览器上工作时,我会在连接超时时得到一个522错误。

由于我的名字服务器是在Cloudflare上管理的,而我的液滴(虚拟机)在数字海洋上,我是否需要设置从http到https的端口转发?我在这里没什么经验。

有人会遇到这种情况,并且知道让子域工作的步骤吗?

我是否需要在每个液滴中创建带有服务器块的配置nginx站点文件,并使用Lets和Certbot?

如果是的话,负载均衡器ip地址在哪里合适。因为我在每个单独的水滴上都这样做,所以我很难考虑如何为负载平衡器合并配置,因为从技术上讲,它不是我可以登录和安装NGINX的vm (据我所知)。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-23 21:48:09

我发现有效的解决方案是在数字海洋中的负载均衡器设置。为端口443设置一个新的端口转发规则,并将SSL设置为通过。一旦完成,您将需要进入/etc/nginx/sites可用,或者更新默认值,或者创建一个新的.conf文件,在其中定义一个新的服务器块。在下面的示例中,我在/var/www文件夹中创建了一个定制的html目录和页面。

代码语言:javascript
运行
复制
server {

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }

一旦完成,您需要在启用站点的文件夹之间创建一个链接。关于如何创建这类文件的详细信息,我使用它作为指南(它有点过时,但仍然有效)。

在数字海洋服务器上创建和部署Express Rest API

一旦创建了conf文件并设置了服务器块,您就可以按照此链接进行SSL传递。

如何配置SSL通过数字海洋

从本质上说,要使其正常工作,您可以使用Certbot创建SSL证书,这样Https才能工作。您可以在每个虚拟机上这样做,也可以在数字海洋上创建一个液滴图像。因此,我的建议是在一个小滴上完成所有配置,并使https正确工作(这意味着您可以转到站点地址,而不是ip,它可以工作)。另一种方法是将所有步骤记录在VM上,并使用像Ansible这样的devOps工具来实现自动化,这样您就不必手动定制每台机器。

两个站点运行后(在切换子域指向负载均衡器之前,可以针对要测试的每个液滴测试子域),然后可以将负载均衡器ip地址设置为您域或子域的cloudflare A记录。

根据我的理解,SSL通过让负载均衡器通过任何SSL证书检查到与负载均衡器相关的每个单独的水滴。因此,请记住,如果您正在为每个液滴管理一个或多个证书,如果任何证书过期,则该液滴将无法工作。希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72660910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档