• Day 21 LAMP架构和DNS域名


    LAMP架构简介

    针对不同的后端开发语言,使用不同的架构,后端项目开发语言有:Java,PHP,Python......

    针对于PHP项目

    LAMP架构

    Linux+Apache+Mysql/Mariadb+Php

    LNMP架构

    Linux+Nginx+Mysql/Mariadb+Php

    针对于Java项目

    war包  LA/NMJT架构

    Linux+Apache/Nginx+Mysql/Mariadb+Java+Tomcat

    jar包   LA/NMJ架构

    Linux+Apache/Nginx+Mysql/Mariadb+Java

    案例:使用LAMP架构搭建个人博客

    ①安装LAMP架构所需要的软件包

    yum -y install httpd mariadb mariadb-server php php-fpm php-mysql php-gd gd

    ②启动并设置开机自启动LAMP架构

    systemctl start httpd mariadb php-fpm

    systemctl enable httpd mariadb php-fpm

    ③配置服务(使用应用默认配置)

    Apache

    将软件包上传至服务器,并解压

    tar xf wordpress-4.9.1-zh_CN.tar.gz 

    将项目包内容拷贝到网页默认发布目录 /var/www/html/ 下

    cp -r /tmp/wordpress/* /var/www/html/

    设置项目包权限(此处直接给发布目录777权限)

    chmod 777 -R /var/www/html/

    重启httpd

    systemctl restart httpd

    Mariadb

    root 默认没有密码,先设定root密码

    mysqladmin -u root password ‘123’

    进入数据库

    mysql -u root -p123

    创建数据库

    create database wordpress;

    退出数据库

    exit;

    Php

    使用默认配置,不做修改

    ④登录验证测试

    在浏览器输入服务器IP地址登录博客,并填写以下信息

    完成

    DNS域名

    DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

    域名的分层结构

    由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。

    这里,“域”(domain)是名字空间中一个可被管理的划分。从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域主域名子域名等。关于域名层次结构如下图

    域名分层实例

    以百度为例:www.baidu.com

    .com 顶级域

    baidu.com    主域名(一级域名)   

    www.baidu.com    子域名(二级域名)

    tieba.baidu.com    子域名的子域(三级域名) ......

    一般从子域名(二级域名)开始绑定IP地址

    常见顶级域

    .com 商业机构; .org 公益组织; .net 网络技术组织; .gov 政府机构; .edu 教育机构;

    .cn 中国; .us 美国;......

    DNS服务器的分层结构

    域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装有域名系统的主机。域名解析过程涉及4个DNS服务器

    根域名服务器

    Root nameserver,DNS层次结构的顶层,负责存储有关顶级域(例如.com、.org、.net等)的DNS信息。本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。全球一共有13台根服务器,美国10台,日本,英国,瑞典各1台。

    顶级域名服务器

    Tld nameserver,负责管理在该顶级域名服务器下注册的二级域名,例如“www.example.com”,.com则是顶级域名服务器,在向它查询时,可以返回二级域名“example.com”所在的权威域名服务器地址

    权威域名服务器

    authoritative nameserver,在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系,例如云解析DNS。此外还有非权威服务器,该DNS服务器中存放是缓存数据,不具有权威性。

    本地域名服务器

    DNS resolver或Local DNS,本地域名服务器是响应来自客户端的递归请求,并最终跟踪直到获取到解析结果的DNS服务器。例如用户本机自动分配的DNS、运营商ISP分配的DNS、谷歌/114公共DNS等

    注意:

    每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
    每一级域名服务器都知道下级域名服务器的IP地址,以便于一级一级向下查询

    DNS解析流程

    ①客户端查询自己的缓存,再查询本地域名解析文件/etc/hosts中的记录,如果没有记录,将查询请求发送 /etc/resolv.conf 或 /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件中的指定的DNS服务器

    Linux本地域名解析文件:/etc/hosts

    Windows本地域名解析文件:C:\Windows\System32\drivers\etc\hosts

    网卡配置文件中的DNS服务器地址永久生效,/etc/resolv.conf中的DNS服务器地址临时生效

    ②如果对于请求的信息具有权威性,会将(权威答案)发送到客户端。

    ③否则(本地DNS服务器不具有权威性),那么DNS服务器会在其缓存中查看是否有以前的请求信息留下的缓存,如果有则将(非权威答案)发送到客户端 。

    ④如果缓存也中没有该查询信息,DNS服务器从根域服务器开始,按照DNS层次结构向下搜索,一直查到对于信息具有权威的名称服务器,为客户端获答案。

    ⑤DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找

    域名备案

    非法域名

    使用过程中绑定局域网IP即可(一般个人虚拟机做实验时使用)

    合法域名

    需要购买,使用过程中需要绑定合法公网IP地址

    在合法域名没有备案的情况下,80和443端口不可使用,备案后还需在网页中标明备案信息

    一般备案审查条件:域名+云服务器(至少三个月)

    域名商和云服务器提供商可以不是同一个平台,云服务器的厂商一般都自带公网IP

    在域名购买平台添加IP记录即可

    DNS记录类型

    前三种较为常用

    记录类型功能描述
    AIPV4记录,支持将域名映射到IPv4地址使用
    AAAAIPV6记录,支持将域名映射到IPv6地址使用
    CNAME别名记录,支持将域名指向另外一个域名
    MX电邮交互记录,支持将域名指向邮件服务器地址
    TXT文本记录,是任意可读的文本DNS记录
    SRV服务器资源记录,用来标识某台服务器使用了某个服务,常见于微软系统的目录管理
    NS名称服务器记录,支持将子域名委托给其他DNS服务商解析
    CAACAA资源记录,可以限定域名颁发证书和CA(证书颁发机构)之间的联系

    DNS术语

    递归查询
    是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。


    迭代查询
    是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。


    DNS缓存
    DNS缓存是将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。


    TTL
    Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。

    TLD Server
    Top-level domains Server,指顶级域名服务器。

    DNS Resolver
    指本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。

    Root Server
    指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。

    DNS Query Flood Attack
    指域名查询攻击,攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过DNS服务器可承载的能力时,则会造成解析域名超时从而直接影响业务的可用性

    URL转发
    Url Forwarding,也可称地址转向,它是通过服务器的特殊设置,将一个域名指向到另外一个已存在的站点

    DNSSEC
    域名系统安全扩展(DNS Security Extensions),简称DNSSEC。它是通过数字签名来保证DNS应答报文的真实性和完整性,可有效防止DNS欺骗和缓存污染等攻击,能够保护用户不被重定向到非预期地址,从而提高用户对互联网的信任。

  • 相关阅读:
    23.1 Bootstrap 表格
    LLM实战:LLM微调加速神器-Unsloth + LLama3
    python自动化之——获取钉钉群所有人的昵称
    逆袭-2014年中电投篮球赛札记_01【转】
    Softmax简介
    Python_01_如何在CentOS7上安装Python3
    Springboot 实践(14)spring config 配置与运用--手动刷新
    鲸鱼算法优化LSTM超参数-神经元个数-dropout-batch_size
    C实现杨辉三角
    python网络爬虫笔记16:JS逆向数据解密方法及在python中执行js文件
  • 原文地址:https://blog.csdn.net/xlv133922/article/details/138152465