土豆不好吃

使用Azure Front Door 和 Load Balancer

文章目录[显示]

一般来说,做个网站,并开放给全世界,有以下几种方式:

  1. 直接使用公网IP+端口号
  2. 买个域名,做解析,使用域名访问
  3. 套上 Cloudflare,让 Cloudflare去反向代理源站
  4. 用 Cloudflare Argo Tunnel,服务器有没有公网IP都无所谓了
  5. 其他CDN方案

最近在用 Azure,一直想利用一下他们的Front Door。简单的摸索了一下如何把Front Door、Load Balancer 和 vm三者结合起来使用。

创建一台 vm

不分配公网 IP 没关系,简单起见这里先只创建一个了

创建 LB

给 LB的类型设置为 Public,创建一个IP,可以选Microsoft网络也可以选公网,具体区别可以看 https://learn.microsoft.com/zh-cn/azure/virtual-network/ip-services/routing-preference-overview

添加 NIC,选择虚拟机的那个网卡

此负载均衡器会有一个公网IP地址,并且连接到了我们的vnet,只是我们还没有定义 NAT出入规则,所以还需要继续配置

打开LB的Inbound NAT rules,由于我们的backend其实只有一台vm,因此类型选择 azure 虚拟机就可以了

这个时候 ssh 就会发现能够连到vm啦,但是vm还上不了网

要添加出网规则机器才能上网,outbound rules中添加一个

Port allocation 选择 default就行

这个时候机器就可以上网了,体验了一把自己配置 SNAT的快感🤡

那就先跑个nginx 方便我们后续测试 http

sudo docker run -d -p 80:80 nginx:alpine
curl localhost

之后时候你在这台机器外面 curl 还是不行的,因为还得继续加一条 inbound 80 规则和上面一样,这时在外面就可以访问啦!

创建 Front Door

Front door有三种,Classic、Standard、Premium

Classic即将在2027年3月退役

Classic 按照流量和路由规则、WAF等计费,Standard、Premium则是月费、流量和请求数量计费。

按照提示来就行,之后 Front Door会让我们配置

Domain

Domain 那里就选创建 Front Door的时候的那个域名

Backend pools

需要注意这里 https port也要写80

因为在我们的vm上只跑了80端口,所以只能都80。如果我们的应用是跑在其他端口的话,也要跟着更改

routing rules

要注意 forwarding protocol 选择 http only,原因同上

然后部署,等几分钟,就有啦

总结

  1. Azure Front Door Premium 可以用 Private Link 连接到内部负载均衡器。但是 Premium 月费要330美元,我可能确实用不起……
  2. 如果单机性能足够,那么给vm分配个公网IP,然后配置 Front Door写这个IP就行
  3. 如果单机性能不够,那么可以再加多台vm,然后用LB做负载均衡;也可以直接 Front Door 加 backend pool
  4. 走微软全球网络路由的性能应该不错

参考文档

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/azure-fd.html
退出移动版