5.3 Linux DNS 服务

1、概念介绍

DNS(Domain Name System)域名系统,是互联网的一项核心服务,可以作为域名和IP地址相互映射的一个分布式数据库,提供域名与IP地址的解析服务,能够使人们更加方便的使用域名访问互联网而不是记住繁琐的IP地址。

DNS 采用C/S架构

DNS 端口:

  • udp/53 #是用来做DNS解析的
  • tcp/53 #是用来做DNS主从复制(区域传输)
a. DNS 域名层次结构

DNS 系统采用的是分布式的解析方案,整个 DNS 架构是一种层次树状结构,这个树状结构称为 DNS 域名空间, 由于DNS 划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。

域名分层作用:树状结构最顶层称为根域,用“.” 表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将 com 域的解析全委派给 com 域服务器,以后但凡跟服务器收到以 com 结尾的域名解析请求,都会转发给com 域服务器,同理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。

根域:位于域名空间最顶层,一般用一个“.” 表示,其记录着Internet 的重要DNS 信息,由Internet域名注册授权机构管理,该机构把域名空间各部分的管理责任分配给连接到Internet 的各个组织。(全球有13个根(root)服务器)

顶级域:一般代表一种类型的组织机构或国家地区,如net、com、org、edu、gov、mil、cn、jp、hk。顶级域的3 种类型:

  • 组织域:采用3 个字符的代号,表示DNS 域中所包含的组织的主要功能或活动。

com 为商业机构组织

mil 为军事机构组织

int 为国际机构组织

edu 为教育机构组织

net 为网络机构组织

gov 为政府机构组织

org 为非营利机构组织

  • 地区域:采用两个字符的国家或地区代号。如cn 为中国,kr 为韩国,us 为美国。
  • 反向域:这是个特殊域,名字为in-addr.arpa,用于将IP 地址映射到名字(反向查询)。

二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如.cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn

子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

主机:主机位于域名空间最下层,就是一台具体的计算机,如www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名。平时上网输入的网址都是 FQDN 名,如 www.sina.com.cn,其实表示我们要访问 “sina.com.cn” 域中一台名为 “www” 的计算机

b. DNS 名称服务器

DNS名称服务器保存有资源记录并能响应名称查询的计算机。如果DNS服务器负责管理一个或多个区域,就称此DNS服务器为这些区域的授权名称服务器。授权服务器负责管理所管辖的区域中的数据,并为查询的DNS客户提供这些数据。

DNS 名称服务器的类型:

  • 主域名服务器: 主域名服务器负责存储授权区域的一切数据且管理该区域和对区域具有域名解析功能。
  • 辅助域名称服务器:辅助名称服务器可以从主域名服务器中同步一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据,同时可以接受客户机的查询
  • 唯高速缓存服务器:缓存服务器负责临时存储主域名服务器己解析过域名记录

每个区域必须有主域名服务器,另外每个区域建议至少要有一台辅助域名服务器,否则如果该区域的主域名服务器崩溃了,就无法解析该区域的名称。

辅助域名服务器的优点:

  • 容错能力: 配置辅助域名服务器后,在该区域主服务器崩溃的情况下,客户机仍能解析该区域的名称。一般把主服务器和辅助服务器安装在不同子网上,这样如果到一个子网的连接中断,DNS 客户机还能直接查询另一个子网上的名称服务器
  • 减少广域链路的通信量: 如果某个区在远程有大量客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止远程客户机通过慢速链路通信来进行DNS 查询
  • 减轻主服务器的负载:辅助服务器能回答该区的查询,从而减少该区主服务器必须回答的查询数。

DNS 缓存:

DNS服务器在解析客户机请求时,如果本地没有该DNS信息,则可以会询问其他DNS服务器,当其他域名服务器返回查询结果时,该DNS服务器会将结果记录在本地的缓存中,成为DNS缓存。当下一次客户机提交相同请求时,DNS 服务器能够直接使用缓存中的DNS 信息进行解析。

c. DNS 查询过程

通过8个步骤的解析过程就使得客户端可以顺利访问www.163.com 这个域名,但实际应用中,通常这个过程是非常迅速的。

⑴ 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。

⑵ 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS 信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。

⑶ 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。

⑷ 本地服务器再向返回的域名服务器发送请求。

⑸ 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。

⑹ 本地域名服务器将查询请求发送给返回的DNS 服务器。

⑺ 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS 信息,查询过程 将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。

⑻ 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

递归查询:递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果(解析成功或解析失败)回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

迭代查询:DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

上图中的步骤1和8就是递归查询,2、3、4、5、6、7是迭代查询过程

正向解析:正向解析是指域名到IP 地址的解析过程。

反向解析:反向解析是从IP 地址到域名的解析过程。反向解析的作用为服务器的身份验证。

d. DNS 资源记录

A 资源记录:A记录也称为主机记录,是使用最广泛的DNS记录,A记录把FQDN(完全合格的域名) 映射到IP 地址。 因为有此记录,所以DNS服务器能解析FQDN域名对应的IP 地址。它是域名和IP地址的对应关系,表现形式为 www.contoso.com.192.168.1.1 这就是一个A记录。

A记录除了进行域名和IP对应以外,还有一个高级用法,可以作为低成本的负载均衡的解决方案,比如说,www.contoso.com 可以创建多个相同A记录,对应多台物理服务器的IP地址,可以实现基本的流量均衡(轮询查询功能)。

CNAME 资源记录:别名记录(CNAME)资源记录创建特定FQDN 的别名。

PTR 资源记录:相对于A 资源记录,指针(PTR)记录把IP地址映射到FQDN。 用于反向查询,通过IP地址,找到域名。

NS记录:NS(Name Server)记录是域名服务器记录,用来指定该域名由哪些DNS服务器来进行解析。

SOA 资源记录:NS记录说明了有多台服务器在进行解析,但哪一个才是主服务器呢,NS并没有说明,这个就要看SOA记录了,名叫起始授权机构记录Start of Authority Record),SOA记录说明了在众多NS记录里那一台才是主要的服务器。NS记录和SAO记录是任何一个DNS区域都不可或缺的两条记录。

MX 资源记录:邮件交换(MX)资源记录,在使用邮件服务器的时候,MX记录是不可或缺的。

2、DNS 服务安装

BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统)。BIND 主要有三个版本:BIND4、BIND8、BIND9。

BIND8 融合了许多提高效率、稳定性和安全性的技术,而BIND9 增加了一些超前的理念:IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。

a. 安装BIND
yum -y install bind bind-chroot bind-utils
  • bind 该包为DNS 服务的主程序包。
  • bind-chroot 提高安全性。
  • bind-utils 该包为客户端工具,提供了对dns服务器的测试工具程序,如nslookup等。
  • bind-libs 提供了bind、bind-utils需要使用的库函数。

提示:bind-chroot是bind的一个功能,使bind可以在一个chroot 的模式下运行,为bind服务提供一个伪装的根目录(将/var/named/chroot/目录作为bind的根目录)。这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个目录的范围里,无法进一步提升,进入到系统的其他目录中。

b. 配置文件

/etc /named.conf 是BIND 的主配置文件,它包含了BIND的基本配置,但并不包括区域数据。

/var/named/ 目录为DNS数据库文件存放目录,每一个域文件都放在这里。

# 修改监听ip
vim /etc/named.confoptions {listen-on port 53 { 192.168.137.253; };}
c. 启动服务
# 启动named服务
systemctl start naemd
# 将服务设置自启动
systemctl enable naemd
# 查看服务状态
systemctl status named

# 查看DNS端口
netstat -antup | grep 53 | awk '/named/{print $0}'

# 查看named进程
ps -ef | grep named

# 在客户端配置DNS服务器地址
vim /etc/resolv.conf

nslookup www.baidu.com

3、实验1:主从服务器(主)

使用bind构建域名服务器时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。

主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数;区域数据文件用于存放某个dns区域的地址解析记录(正向记录或反向记录)

主配置文件中主要包括全局配置(options)、区域配置(zone)两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的部分表示注释文字(大段注释可以使用“/*………*/”的格式)

区域数据文件,每个区域数据文件对应一个dns解析区域,文件名和内容由该区域的管理员自行设置

a. 实验环境

主机名

角色

IP地址

CentOS_Server

Dns主服务器

192.168.137.5

CentOS_Client

Dns从服务器

192.168.137.6

b. 需要解析的域名信息

公司域名test.com

网站服务器: www.test.com 192.168.1.20 192.168.1.21 192.168.1.22

ftp服务器:ftp.test.com 192.168.1.30

ftp别名服务器:ftpserver.test.com

邮件服务器:mail.test.com 192.168.1.40

c. /etc/named.conf
options {# 监听地址和端口listen-on port 53 { any; };# 监听IPv6地址和端口listen-on-v6 port 53 { any; };# 区域数据文件的默认存放位置directory 	"/var/named";# 域名缓存数据库文件位置dump-file 	"/var/named/data/cache_dump.db";# 状态统计文件的位置statistics-file "/var/named/data/named_stats.txt";# 内存使用统计信息memstatistics-file "/var/named/data/named_mem_stats.txt";# 递归查询recursing-file  "/var/named/data/named.recursing";# 认证文件secroots-file   "/var/named/data/named.secroots";# 设置允许DNS查询的客户端地址allow-query     { any; };/* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.- If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so willcause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatlyreduce such attack surface */# DNS转发器.新增forwarders{ 8.8.8.8; 114.114.114.114; };# 设置递归查询recursion yes;# 设置是否启用DNSSEC支持,DNSSEC可以用来验证DNS数据的有效性dnssec-enable yes;# 设置是否启用DNSSEC确认,默认值为yes,可以选择autodnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};# 正向test.com 区域
zone "test.com" IN {# 类型为主区域type master;# 区域数据文件名file "test.com.zone";# 允许区域传输的从dns服务器地址allow-transfer{ 192.168.137.6; };
};# 反向 192.168.137.0/24区域
zone "137.168.192.in-addr.arpa" IN {type master;file "192.168.137.arpa";allow-transfer { 192.168.137.6; };
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
  • 根区域的区域数据文件默认是/var/named/named.ca,该文件记录了internet中13台根域服务器的域名和ip地址等相关信息。
# 主配置文件语法检测
named-checkconf /etc/named.conf
echo $?
d. 创建正向区域数据文件

区域数据配置文件通常位于/var/named/目录下,每个区域文件对应一个DNS解析区域,文件名要与named.conf中设置的一致。

cd /var/named
cp /var/named/named.localhost /var/named/hualu.com.zone
vim hualu.com.zone
$TTL 1D
@	IN SOA	 hualu.com. hualulemon.gmail.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimum
hualu.com.	IN	NS	dns.hualu.com.nds.hualu.com.	IN	A	192.168.137.5
www.hualu.com.	IN	A	192.168.137.100
hualu.history.com.	IN	A	192.168.137.102
ftp.hualu.com.	IN	CNAME	ftp.hualu.com.

$TTL 1D

设置有效地址解析记录的默认缓存时间,默认为1天也就是1D。

@ IN SOA hualu.com. hualu.gmail.com.

SOA标记,域名、管理邮箱

注:在此配置文件中写域名时,都把根. 也要写上。管理邮箱root.test.com.由于@有其他含义,所以用“.”代替@。

0

更新序列号,用于标示数据库的变更,可以在10位整数以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1.

1D

刷新时间,从域名服务器更新该数据库文件的间隔时间,默认为1天

1H

重试延时,从域名服务器更新数据库失败以后,等待多长时间,默认为为1小时

1W

失效时间,超过该时间仍无法更新数据库,则不再尝试,默认为一周

3H

设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时。

NS(name server,域名服务器)

域名服务器记录,用于设置当前域的DNS服务器的域名地址。

补充:泛域名解析,所谓“泛域名解析”是指:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。例如:* IN A 192.168.36.251

注意:在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的dns域为test.com.,则在文件中的主机地址“www”相当于www.test.com.。因此,当用完整的FQDN地址时,务必记得地址末尾的点号“.”不能省略

e. 创建反向区域数据文件
cp /var/named/named.localhost /var/named/192.168.137.arpa
vim 192.168.137.arpa
$TTL 1D
@	IN SOA	hualu.com. hualu.gmail.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumIN	NS	dns.hualu.com.
5	IN	PTR	dns.hualu.com.
201	IN	PTR	hualuenglish.com.
202	IN 	PTR	hualumath.com.	
f. 更改正反向区域文件权限
# 更改正向区域文件的所有组
chown root:named /var/named/hualu.com.zone # 更改反向区域文件的所有组
chown root:named /var/named/192.168.137.arpa 
ll /var/named/

g. 测试区域文件语法是否正确
# 检查主配置文件语法是否错误
named-checkconf -z /etc/named.conf# 检查正向区域文件语法是否正确
named-checkzone hualu.com /var/named/hualu.com.zone
h. 客户端测试
# 更改dns 配置文件
vim /etc/resolv.confnameserver 192.168.137.5# 测试主服务器中的dns地址
nslookup	www.hlmath.com

4、实验1:主从服务器(从)

主从时间一定要保持一致

a. 安装工具
# 安装dns服务
yum install -y bind bind-chroot bind-utils
b. 修改 named.conf
options {listen-on port 53 { any; };listen-on-v6 port 53 { any; };directory 	"/var/named";dump-file 	"/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";allow-query     { any; };forwarders { 8.8.8.8; 114.114.114.114; };recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};zone "lemon.com" IN {type slave;file "slaves/lemon.com.zone";masters { 192.168.137.5; };
};zone "137.168.192.in-addr.arpa" IN {type slave;file "slaves/192.168.137.arpa";masters { 192.168.137.5; };
};
# 检查主配置文件语法是否正确
named-checkconf -z named.conf

# 重启服务并设置开机自启
systemctl restart named
systemctl enabled named
c. 查看区域配置文件

主配置文件配置完成后,重启服务,自动从主服务器中拉取区域配置文件。正向区域文件和反向区域配置文件中都是乱码。

dns服务器是有缓存的,如果想重新同步主服务器区域文件,请删除/var/named/slaves/下的同步文件,重启named

d. 测试从服务器DNS
# 修改测试主机的DNS为从服务器IP地址
vim /etc/resolv.confnameserver 192.168.137.6# 测试地址
nslookup www.hlmath.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3-11- 【v-for】循环数组

v-for的基本介绍 v-for 是一个指令&#xff0c; 它是用来在 html 模板中实现循环的。它可以循环 普通的数组、也可以直接循环一个范围值&#xff0c;也可以循环对象的每个属性。v-for 的语法介绍 <div v-for"(item,index) in arrayName" : key"index"…

有哪些好用的运维管理软件?哪个工单管理系统的操作简单一些?

运维管理软件可以帮助企业更有效地管理公司内外的事务&#xff0c;比如现在不少公司就引入了工单管理系统来处理后勤和售后的事务。那么&#xff0c;有哪些好用的运维管理软件&#xff1f;哪个的操作简单一些呢&#xff1f;   随着技术的发展和成熟&#xff0c;现在的工单管理…

vue_域名部署无法访问后端

前言 目前部署的比较另类&#xff0c;因为服务器为windows&#xff0c;目前还不是很会nginx&#xff0c;所以现在就只能在服务器上安装nodejs&#xff0c;然后直接使用npm run dev命令行的方式运行项目 遇到的坑 使用ip访问前端的时候&#xff0c;就可以访问&#xff0c;但是…

压缩照片怎么压缩?半分钟解决!

有时候我们在平台上传照片的时候&#xff0c;会有图片大小限制&#xff0c;想要将照片压缩到限制的大小范围内&#xff0c;可以使用专业的图片压缩软件、图片处理软件或者在线网站压缩&#xff0c;下面给大家分享三个方法&#xff0c;压缩照片的同时还能保持图片清晰度哦&#…

Windows10安装Node.js环境

Windows10安装Node.js环境 文章目录 1.下载安装包2.安装配置2.1安装2.2 配置全局的安装路径和缓存路径2.3配置环境变量2.4配置镜像源2.5包管理工具 3.查看版本4.编译跑项目5.总结 1.下载安装包 官方下载网址如下&#xff1a; https://nodejs.org/enInstaller表示是安装程序&a…

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针测试

目录 前言 Tessy 如何进行打桩操作 普通桩 高级桩 手写桩 Tessy单元测试之指针相关测试注意事项 有类型的指针&#xff08;非函数指针&#xff09;&#xff1a; 有类型的函数指针&#xff1a; void 类型的指针&#xff1a; 结语 前言 进行单元测试之后&#xff0c;但凡…

LED透镜粘接UV胶是一种特殊的UV固化胶

LED透镜粘接UV胶是一种特殊的UV固化胶&#xff0c;用于固定和粘合LED透镜。 它具有以下特点&#xff1a; 1. 高透明度&#xff1a;LED透镜粘接UV胶具有高透明度&#xff0c;可以确保光线的透过性&#xff0c;不影响LED的亮度和效果。 2. 快速固化&#xff1a;经过UV紫外线照射…

HTTP 404错误:页面未找到,如何解决

在互联网上浏览时&#xff0c;偶尔会遇到“HTTP 404错误&#xff1a;页面未找到”的提示。这通常意味着用户尝试访问的网页不存在或无法找到。本文将探讨HTTP 404错误的原因以及如何解决这个问题。 一、HTTP 404错误的原因 HTTP 404错误可能是由多种原因引起的。以下是一些常…

SQL进阶理论篇(五):什么是Hash索引

文章目录 简介MySQL中的Hash索引与B树的区别总结参考文献 简介 hash&#xff0c;即哈希&#xff0c;也被称为是散列函数。 Hash在数据库中的应用&#xff0c;可以帮助我们大幅度提升检索数据的效率。 大名鼎鼎的MD5其实就是Hash函数的一种变体。 Hash算法&#xff0c;是通过…

富文本 unpkg.com地址无法访问可替代方案

一、背景&#xff1a; 项目中使用的 wangEditor富文本&#xff0c;使用的地址为&#xff1a;https://unpkg.com &#xff0c;但无法访问&#xff0c;富文本加载不出来&#xff0c;一直转圈圈 二、解决方案&#xff1a; 2.1、方案一 &#xff1a; 将项目中 https://unpkg.co…

k8s容器部署mysql5.7全流程分享

文章目录 一、前言二、打开dockerhub 看到mysql的版本为 5.7三、K8S 容器编排3.1、编写POD的相关信息3.2、编写mysql的data存储位置3.3、编写mysql的my.cnf的挂载文件3.4、编写mysql的service端口 四、启动并禁用root账户4.1 登录&#xff0c;默认密码1234564.2 配置账户权限 五…

Linux系统编程(二):标准 I/O 库(下)

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 标准 I/O 库简介 标准 I/O 库是指&#xff1a;标准 C 库中用于文件 I/O 操作&#xff08;如&#xff1a;读、写文件等&#xff09;相关的一系列库函数的集合 标准 I/O 库函数相关的函数定义都在头文件 &…

【MySQL学习之基础篇】概述

文章目录 1. mysql的启动和停止命令2. 客户端连接3. 数据模型 1. mysql的启动和停止命令 通过指令启动或停止&#xff0c;以管理员身份运行cmd&#xff0c;进入命令行执行如下指令&#xff1a; &#xff08;1&#xff09;启动myaql net start mysql&#xff08;2&#xff09;…

PyTorch: 基于【VGG16】处理MNIST数据集的图像分类任务【准确率98.9%+】

目录 引言在Conda虚拟环境下安装pytorch步骤一&#xff1a;利用代码自动下载mnist数据集步骤二&#xff1a;搭建基于VGG16的图像分类模型步骤三&#xff1a;训练模型步骤四&#xff1a;测试模型运行结果后续模型的优化和改进建议完整代码结束语 引言 在本博客中&#xff0c;小…

商城后台管理系统--->新闻简报(富文本编辑器,文章,图片上传)

在商城的项目里面需要添加新闻&#xff0c;使用富文本编辑器&#xff0c;我用的是 wangEditor这个编辑器挺好用的&#xff0c;而且也方便简单&#xff0c;官网也是中文的wangEditor 这是做的添加新闻的页面 我用的是SCUI框架,引入的是npm,具体可看官网 npm install wangedit…

【Docker实战】基于Dockerfile搭建LNMP+wordpress

一、项目背景和要求 公司在实际的生产环境中&#xff0c;需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。 然后对此服务进行相关的性能调优和管理工作 二、架构&#xff1a; nginx172.111.0.10docker-nginxmysql172.111.0.20docker-mysqlPHP172.111…

map 和 multimap 存储区别 、取消自动排序 unordered_map

测试代码 std::map<int, CString > Map1;Map1.insert({ 6, L"HN400*200*11*8" });Map1.insert({ 5, L"HN200*200*11*8" });Map1.insert({ 7, L"HN100*200*11*8" });Map1.insert({ 4, L"HN200*200*11*8" });Map1.insert({ 4, L…

【开发工具】最新VMWare无法识别USB设备,驱动错误,未知错误【2023.12.15】

解决方案1&#xff1a;在这里改下连接方式 多试试 解决方案2 控制面板卸载程序&#xff0c;进行VMWare的修复 解决方案3 对于Windows7系统&#xff0c;切换解决方案1的usb类型为3.1&#xff0c;并下载这个intel的驱动包到虚拟机里 https://www.intel.com/content/www/us/en/do…

科目三 换挡为什么要踩离合器

换挡时需要踩离合器为了切断动力传输&#xff0c;让变速器空转&#xff0c;齿轮才会同步&#xff0c;从而轻松挂挡。 在起步时&#xff0c;当车速达到15km/h时&#xff0c;从一挡换到二挡。 当车速达到25km/h时&#xff0c;可以换成三挡&#xff0c; 达到35km/h左右时&#xf…

高效电商策略:小红书集成CRM与广告推广无代码化

无代码开发的优势 随着科技的不断进步&#xff0c;无代码开发&#xff08;No-Code Development&#xff09;已经成为快速构建系统和应用的新趋势。无代码开发指的是不需要传统编程知识&#xff0c;通过图形化的用户界面和模型驱动逻辑来创建应用程序。这种方式让非技术背景的用…