将我的服务开放给用户 | 青训营
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
在开发前期,低成本的让别人访问自己的访问
个人心得
非常粗浅和笼统的讲述一些概念,想要更深入的了解的话需要实际去运用