网络与部署学习| 青训营笔记

125 阅读3分钟

网络与部署学习笔记

自建 DNS 服务器

什么是 DNS

DNS(Domain Name System)域名系统,是将域名转换为 IP 地址的服务,类似于电话簿,通过 DNS 服务可以不用记住一堆数字 IP 地址,直接通过更容易记忆的域名来访问网站。

自建 DNS 服务器

在一些特殊的应用场景中,我们需要自建 DNS 服务器来管理和解析域名,实现更加灵活的 DNS 服务。

安装 BIND9

BIND9 是一个流行的 DNS 服务器软件,可以在 Linux 上运行。以下是在 Ubuntu 系统上安装 BIND9 的步骤:

sudo apt-get update
sudo apt-get install bind9

配置 BIND9

在 BIND9 的配置文件 /etc/bind/named.conf.local 中,可以定义一个新的 DNS 区域,例如:

zone "example.com" {
    type master;
    file "/etc/bind/example.com.zone";
};

将域名 example.com 解析为本地服务器。

然后在 example.com.zone 文件中定义该域名下的主机记录 A 记录和 MX 记录:

$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                             2021062001     ; Serial
                             3600           ; Refresh
                             1800           ; Retry
                             604800         ; Expire
                             86400 )        ; Minimum TTL
;
@       IN      NS      ns1.example.com.

ns1     IN      A       192.168.1.100
www     IN      A       192.168.1.101
mail    IN      A       192.168.1.102
        IN      MX 10   mail.example.com.

启动 BIND9 服务

成功完成 BIND9 的配置后,可以通过以下命令启动 DNS 服务器:

sudo service bind9 start

HTTPS 协议

什么是 HTTPS

HTTPS(Hypertext Transfer Protocol Secure)是 HTTP 的安全版,是一种经过 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议加密的协议。

部署 HTTPS

为网站配置 SSL 证书

要实现 HTTPS,我们需要先从证书颁发机构(CA,Certificate Authority)处获得 SSL 证书。环境准备好之后,通过以下步骤配置 SSL 证书:

  1. 生成 SSL 密钥文件和证书签名请求(CSR)文件:

    openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
    
  2. 提交证书签名请求到 CA 颁发机构,并获得 SSL 证书

  3. 证书颁发机构将签名好的证书、CA 根证书和 CA 证书链发送给管理员

  4. 在 Web 服务器上配置 SSL 证书

    在 Apache 服务器上,可以在配置文件中添加以下内容:

    <VirtualHost example.com:443>
        SSLEngine on
        SSLCertificateFile /path/to/example.com.crt
        SSLCertificateKeyFile /path/to/example.com.key
    </VirtualHost>
    
  5. 重新启动 Web 服务器

接入全站加速

全站加速是一种通过缓存服务器将网站内容加速进行传输的技术。通过服务提供商的 CDN 网络,实现将网站的原始内容缓存到全球各地的节点服务器,访问也是从距离最近的节点服务器获取响应,提高了网站的访问速度。

常见的全站加速服务提供商包括阿里云、腾讯云、华为云等。

心得

网络和部署知识对 web 开发人员而言非常重要,对于一个 web 系统的架构和性能有直接的影响,同时也为网站的安全提供了更加可靠的保障。对于网络知识,需要对 TCP/IP 协议有深入的理解,了解如何通过自建 DNS 服务器来实现更加灵活的域名解析和管理。对于部署知识,则需要深入了解如何配置和启动应用服务器,如何部署 SSL 证书实现 HTTPS 安全协议,以及如何进行全站加速来提升网站的性能。

无论是在开发还是在部署环节,掌握好这些知识都对于构建高性能、高可用和安全的 web 应用至关重要。在实际工作中,需要不断地学习和探索最新的网络和部署技术,并将其应用到实践中,不断提高自己的技能和水平。