将我的服务开放给用户 | 青训营

50 阅读3分钟

将我的服务开放给用户 | 青训营

1. 搭建域名系统

1.1 域名购买与配置迁移

购买途径:火山引擎、阿里云......

1.2 域名备案

为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,一般在云厂商处即可进行实名认证并备案

1.3 修改配置

  • 清空/etc/hosts
  • 配置/etc/resolv.com中nameservers为公共DNS迁移原配置,通过云厂商控制台添加解析记录即可

1.4 开放外部用户访问

方案1:租聘一个外网ip,专门用于外部用户访问门户网站,将门户网站解析到外网ip上,并把ip绑定在一台物理机上,并发布公网route,用于外部用户访问

2. 自建DNS服务器

问题背景:

  • 内网域名的解析也得出公网去获取,效率低下
  • 外部用户能看到内网ip地址,容易被hacker攻击
  • 云厂商DNS容易出故障,影响用户体验
  • 扩大品牌技术影响力

DNS类型记录:

  • A/AAAA:IP指向记录,用于指向IP
  • CNAME:别名记录,客户端根据别名继续解析以提取IP地址
  • TXT:文本记录,购买证书时需要
  • MX:邮件交换记录
  • NS:解析服务器记录,用于指定哪台服务器对于该域名解析
  • SOA记录:起始授权机构记录,每一个zone有且仅有一条SOA记录,用来描述zone属性和主要权威服务器的记录

2.1 DNS搭建软件

常见开源软件:bind、nsd、knot、coredns

3. 接入HTTPS协议

问题背景:HTTP明文传输,容易被抓取或篡改

4. 接入全站加速

问题背景:

  • 容量低,可承载的并发请求数低,容易被打垮
  • 报文经过的网络设备越多,越容易出现问题
  • 自主选入网络延迟高,卡顿,响应慢

4.1 静态加速CDN

静态请求:不变的文字、图片、视频;html,css;软件安装包等资源文件

解决方案:将网站的静态资源缓存在CDN节点,当访问这些静态内容时无需访问原站,就近访问CDN节点即可,减轻了原站压力,加快了速度

4.2 动态加速DCDN

动态请求:对于POST等非静态请求等不能存储在用户边缘的业务

解决方案:基于智能选路技术,在众多线路中选择最佳路径进行传输

5. 四层负载均衡

基于IP+端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡地落在后端服务器上

主要功能:

  • 服务不在局限于某一台物理机,可以灵活扩缩容
  • NAT
  • 避免IP直接暴露给公网,防攻击

5.1 常见的调度算法

  • RR轮询:将所有请求平均分配给每个真实的服务器
  • 加权RR:给每一个后端服务器一个权值比例,按比例分配请求数量
  • 最小链接:将当前连接分配给当前连接数最小的服务器上
  • 五元组hash:根据sip,sport,proto,dip,dport对静态分配的服务器做散列取模(缺点:某个服务器故障后损害整个hash换)
  • 一致性hash:只影响故障服务器上的连接,其余连接不影响

5.2 开源软件

LVS+keepalived

6. 七层负载均衡

Nginx

最灵活高性能的WEB SERVER,应用最广的7层反向代理

7. 如何把本地服务开放给外网访问

7.1 Ngrok

在开发前期,低成本的让别人访问自己的访问

个人心得

非常粗浅和笼统的讲述一些概念,想要更深入的了解的话需要实际去运用