DNS的服務與部署(2)

1、dns的安裝及開啟

dnf install bind.x86_64 -y ?? ??? ?#安裝
#Berkeley Internet Name Domain (BIND)

systemctl enable --now named?? ?#啟用dns服務,服務名稱叫named
firewall-cmd --permanent --add-service=dns #火墻設置
firewall-cmd --reload?? ??? ??? ?#重啟火墻
setenforce 0?? ??? ??? ??? ??? ?#調整內核級火墻為警告模式

2、配置dns服務使內網主機可以訪問其dns資源

netstat -antlupe | grep named?? ??? ??? ??? ?#可以查看dns開放端口

vim /etc/named.conf?? ??? ??? ??? ??? ??? ??? ?#編輯dns配置文件,對文件做以下修改
11行左右 listen-on port 53 { any; }; ?? ??? ?#在本地所有網絡接口上開啟53端口
19行左右 allow-query { any; }; ?? ??? ??? ??? ?#允許查詢A記錄的客戶端列表,提供服務給所有主機
20行左右 forwarders { 114.114.114.114; };?? ?#將源換為國內的,指定資源從114上取,這樣速度會快一點
34行左右 dnssec-validation no; ?? ??? ??? ??? ?#禁用dns檢測使dns能夠緩存外部信息到本機,開著會因為檢測不合規返回不了“答案”
##每一個字符串一定要用分號結尾

systemctl restart named?? ??? ??? ??? ??? ??? ?#重啟服務

使用內網其他主機測試:

vim /etc/resolv.conf #編輯dns指向文件 nameserver 192.168.187.129

#添加我們配置的dns服務器的ip dig www.baidu.com

#解析測試我們的dns服務器配置是否成功

顯示NOERROR就是沒有問題!

3、DNS的正向解析

企業內部也需要對外提供dns做相應的解析工作!
準備工作:
在上個高速緩存配置的基礎上,先編輯主配置文件vim /etc/named.conf,將源注釋掉

然后使用命令nm-connection-editor將dns服務器在的主機和測試主機的ip都改為靜態ip
dns服務器的IP改成:192.168.187.129
測試主機IP改為:192.168.187.136? ?

修改配置并保存

(1)主機記錄A記錄

第一步:添加域名語句塊

vim /etc/named.rfc1912.zone
##和主配置文件里的內容一樣,里邊有要維護域名的語句塊
##主配置文件讀取域名信息就會到這個文件里讀取
##我們可以在這個文件里添加我們要維護的域名的語句塊
添加:
zone "lucky.com" IN { ?? ??? ??? ?#維護的域名
?type master; ?? ??? ??? ??? ??? ?#當前服務器位主dns
?file "lucky.com.zone"; ?? ??? ?#域名A記錄文件,要解析域名時看的是這個文件
?allow-update { none; }; ?? ??? ?#允許更新主機列表
};

第二步:編輯域名A記錄文件

cd /var/named/?? ??? ??? ??? ?#進入數據目錄
cp -p named.localhost lucky.com.zone?? ??? ?#復制模板得到我們要的域名A記錄文件,一定要加-p參數,所屬組相同

vim lucky.com.zone?? ??? ??? ?#編輯A記錄文件

A記錄文件內容及解釋如下:
$TTL 1D #TIME-TO-LIVE(dns地址保存時間長度)
@ IN SOA dns.lucky.com. root.lucky.com ( ?? ??? ?#SOA授權起始(Start of Authority),誰授權的
#@符的值就是/etc/named.rfc1912.zone文件里我們編寫的域名語句塊引號里的內容
#不是以.結尾的字符串都會被自動補齊@符的值
?0 ; serial ?? ??? ??? ?#域名版本序列號,下文dns集群會用到,有詳細解釋
?1D ; refresh ?? ??? ??? ?#刷新時間(輔助dns)
?1H ; retry ?? ??? ??? ?#重試時間(輔助dns)
?1W ; expire ?? ??? ??? ?#過期時間(輔助dns,查詢失敗過期停止對輔助域名的應答)
?3H ) ; minimum ?? ??? ?#A記錄最短有效期
??? ??? ?NS ?? ?dns.lucky.com.
dns ?? ?A ?? ?192.168.187.129
lucky.a A ?? ?192.168.187.97 ?? ??? ?##正向解析記錄
lucky.a A ?? ?192.168.187.99

復制并編輯A記錄文件

第三步:重啟并在另一臺內網主機測試
systemctl restart named
另一臺主機先檢查下dns服務器是不是我們設置的

然后dig www.lucky.com,如圖測試成功!
##多個ip會自動做輪調

(2)規范域名轉換CNAME記錄

當內部主機名不規范時,對外開放的是規范域名。
那么對外開放的域名只有一個,將對外開放的域名轉換到內部主機再做解析

dns服務器端:
vim /var/named/lucky.com.zone?? ??? ??? ?#編輯A記錄文件

添加:
www ? ? CNAME ? www.a.lucky.com.
#www.a.lucky.com.就是不規范域名

systemctl restart named?? ??? ?#重啟dns

客戶端:
dig www.lucky.com?? ??? ??? ?#另一臺主機測試

編輯文件

重啟

另一臺主機測試,如圖設置成功!

(3)郵件解析MX記錄

什么是MX記錄?
當我們在發送郵件時,假設我們用的163.com郵箱,需要將163.com解析成ip才能進行數據傳輸,這個ip就叫這個域的mx記錄(負責郵件發送和接收的ip)。

dns服務器端

vim /var/named/lucky.com.zone

#編輯A記錄文件 添加后保存退出:

lucky.com. MX 1 192.168.187.129.

systemctl restart named

#重啟dns

添加時寫的是服務器ip

客戶端:

dnf install postfix mailx -y? ? ? ? ? #安裝提供郵件投遞協議的軟件postfix和發送郵件的客戶端mailx systemctl start postfix? ? ? ? ? ? ? ?#開啟postfix服務?

dig -t mx lucky.com? ? ? ? ? ? ? ? ? #查看mx記錄

查看mx記錄,沒有問題

發郵件給root@lucky.com(自行類比@qq.com)
##因為在dns服務器端25端口是自用的(回環),所以不會收到郵件,所以我們在測試端看發送隊列看下效果即可
##如圖即是正向解析成功

4、DNS的反向解析

逆向查詢記錄PTR記錄

什么是PTR記錄?
郵件接收方只會顯示發送方的ip,需要做反向解析,顯示真實的域名,讓用戶知道郵件從哪兒來的。從ip到域名就是ptr記錄。

dns服務器端

vim /etc/named.rfc1912.zones?? ??? ??? ?#編輯文件
添加:
zone "187.168.192.in-addr.arpa" IN {
? ? ? ? type master;
? ? ? ? file "192.168.187.ptr";
? ? ? ? allow-update { none; };
};

cd /var/named/
cp -p named.loopback 192.168.187.ptr?? ??? ?#復制模板得到ptr文件

vim 192.168.187.ptr?? ??? ??? ??? ??? ??? ??? ?#編輯ptr記錄文件
修改成下文:
$TTL 1D
@ ? ? ? IN SOA ?dns.lucky.com. rname.invalid. (
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ; serial
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1D ? ? ?; refresh
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1H ? ? ?; retry
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1W ? ? ?; expire
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3H ) ? ?; minimum
? ? ? ? NS ? ? ?dns.lucky.com.
dns ? ? A ? ? ? 192.168.187.129
233 ? ? PTR ? ? www.lucky.com.
#反向解析IP192.168.187.233應該得到域名www.lucky.com

systemctl restart named?? ??? ??? ??? ??? ??? ?#重啟

編輯named.rfc1912.zones文件

編輯ptr記錄文件

客戶端:
dig -x 192.168.187.233測試如圖成功!

5、DNS的雙向解析


雙向解析:
在內網中的主機解析得到內網的ip,
在外網中的主機解析得到外網的ip。
實驗環境:
我們需要一臺雙網卡主機模擬內網,一臺單網卡主機模擬外網
dns服務器端做內網主機:
添加一個網卡,將ip設為192.168.0.0/24網段的
原來的192.168.187.0/24網段的做內網ip

單網卡主機做外網主機:
ip改為192.168.0.0/24網段的,模擬外網主機,并且將網關設為dns服務器端192.168.0.0/24網段的ip,保證兩臺主機能相互通信

兩臺主機更改完網絡后都需重啟網絡

nmcli connection reload

nmcli connection up

網絡名 例如客戶端網卡名為ens160,那么就是

nmcli connection up ens160

設置完后ping一下通了即可

dns服務器端(內網主機):

vim /etc/named.conf #編輯主配置文件

將下圖內容注釋掉:

注釋掉后,在下邊添加如下內容:
view localnet {
? ? ? ? match-clients { 192.168.187.0/24; };
? ? ? ? zone "." IN {
? ? ? ? ? ? ? ? type hint;
? ? ? ? ? ? ? ? file "named.ca";
? ? ? ? };
? ? ? ? include "/etc/named.rfc1912.zones";
};

view internet {
? ? ? ? match-clients { any; };
? ? ? ? zone "." IN {
? ? ? ? ? ? ? ? type hint;
? ? ? ? ? ? ? ? file "named.ca";
? ? ? ? };
? ? ? ? include "/etc/named.rfc1912.zones.inter";
};

拷貝/etc/named.rfc1912.zones文件得到/etc/named.rfc1912.zones.inter文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
vim /etc/named.rfc1912.zones.inter?? ??? ?#編輯外網配置文件
做如下圖更改:

拷貝A記錄文件得到外網的A記錄文件
cp -p /var/named/lucky.com.zone /var/named/lucky.com.inter
vim /var/named/lucky.com.inter?? ??? ?#編輯外網A記錄文件
做如下圖更改:
#把ip都改成我們想讓外網主機訪問時看到的ip

重啟systemctl restart named

vim /etc/resolv.conf? ? ? ?#添加dns服務器

ip nameserver 192.168.187.129

#因為更改過網絡,所以可能需要重新添加

客戶端(外網主機)

vim /etc/resolv.conf? ? ? ? ? ? ? ? ? ? #添加dns服務器

ip nameserver 192.168.187.129? ? #因為更改過網絡,所以可能需要重新添加

測試:
dns服務器端(內網主機):
dig -x 192.168.187.233測試,如圖顯示的內網ip,成功!

客戶端(外網主機):
dig -x 192.168.187.233測試,如圖顯示的外網ip,成功!

6、DNS集群

當我們的主dns服務器訪問量過大時,服務器不足以支撐這么大的訪問量,我們可以增加n臺輔助dns來分擔訪問壓力。
我們下面以增加一臺輔助dns來實驗如何使主輔dns同步更新!

輔助dns:


我以上面用過的客戶端主機為輔助dns
先將其IP改為和主dns一個網段的,192.168.187.136

更改完網絡后需重啟網絡

nmcli connection reload

nmcli connection up ens160

dnf install bind.x86_64 -y ?? ??? ?#也安裝dns
#Berkeley Internet Name Domain (BIND)

systemctl enable --now named?? ?#啟用dns服務,服務名稱叫named
firewall-cmd --permanent --add-service=dns #火墻設置
firewall-cmd --reload?? ??? ??? ?#重啟火墻
setenforce 0?? ??? ??? ??? ??? ?#調整內核級火墻為警告模式

vim /etc/named.conf?? ??? ??? ??? ?#編輯主配置文件
注釋掉11,12,19行

vim /etc/named.rfc1912.zones?? ?#在文件中加入域名語句塊
添加:
zone "lucky.com" IN {
? ? ? ? type slave;?? ??? ??? ??? ?#類型是輔助dns
? ? ? ? masters { 192.168.187.129; };?? ?#主dns
? ? ? ? file "slaves/lucky.com.zone";?? ?#數據同步到slaves目錄下
};

編輯主配置文件注釋掉如圖三行,就相當于全部都開啟(any)

添加域名語句塊

vim /etc/resolv.conf

nameserver 192.168.187.136? ? #將dns服務器改為自己的,為了看效果

systemctl restart named? ? #重啟dns服務

主dns:


我以上面配好的dns服務器192.168.187.129這臺主機為主dns

先去掉上個實驗的配置,防止影響

vim /etc/named.conf? ?

#編輯主配置文件

注釋掉如下圖內容:

vim /etc/named.rfc1912.zones

在域名語句塊內添加如下內容:

also-notify { 192.168.187.136; };? ?#輔助dns的ip

systemctl restart named? ? ? ? ? ? ?#重啟dns

測試:
輔助dns:
dig www.lucky.com得到如圖結果:

主dns:

vim /var/named/lucky.com.zone

#編輯A記錄文件 更改下ip和serial值:

之后在輔助dns端重新dig看是否同步成功

serial值的作用:
每更改一次該值并重啟主dns服務后,輔助dns就會重新同步A記錄
即重新同步域名所對應ip
一天可以改99次
值可以任意寫!
!!!!!但只能增量更改!!!!!

其他值解釋:
?1D ; refresh ?? ??? ??? ?#刷新時間(輔助dns)
?1H ; retry ?? ??? ??? ?#重試時間(輔助dns)
?1W ; expire ?? ??? ??? ?#過期時間(輔助dns,查詢失敗過期停止對輔助域名的應答)
?3H ) ; minimum ?? ??? ?#A記錄最短有效期

輔助dns:
dig www.lucky.com得到如圖結果:
測試成功!ip同步成功!

DNS(DHCP+DNS)動態域名解析

dhcp能自動分配ip,當重新分配時怎么讓dns知道ip重新分配了呢?ddns可以解決這個問題,實現動態域名解析。
更新原理:制作一個key,讓dhcp能更新dns的A記錄,key是更新域名的鑰匙。
在/var/named目錄下生成一個更新數據,在系統讀取A記錄時會把.jnl結尾的更新文件與A記錄文件整合實現。

ddns服務端

dnf install dhcp-server -y?? ??? ?#安裝dhcp服務器
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf?? ??? ?#復制模板得到配置文件
vim /etc/dhcpd/dhcpd.conf?? ??? ?#編輯dhcp配置文件
做如下圖修改:
#修改最終結果是剩31行

systemctl start dhcpd?? ??? ?#開啟dhcp
接下來制作更新域的“鑰匙”key:
#/etc/rndc.key是dns默認使用的key模板,用的是SHA-256加密,所以我們下面也要使用SHA-256加密
cd /mnt/
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST luckykey
#SHA256加密方式是對稱的,公鑰和私鑰是一樣的

cp -p /etc/rndc.key /etc/lucky.key?? ??? ?#復制key模板得到key文件
vim /etc/lucky.key?? ??? ??? ??? ??? ??? ?#編輯key文件
改成如下內容:
key "luckykey" {?? ??? ??? ??? ??? ??? ?#我們前面取的key名字
? ? ? ? algorithm hmac-sha256;?? ??? ??? ?#加密方式
? ? ? ? secret "/P/GVMVRb/dNIjtr2qYvMg==";?? ??? ?#我們前面生成的密鑰,最好復制粘貼
};

vim /etc/named.conf? ? ? ? ?#更改dns主配置文件加key文件指向

在第45行左右添加key文件指向:

include "/etc/lucky.key";

vim /etc/named.rfc1912.zones? ? ? ? ? ? ?#域名語句塊在這里

在域名語句塊里添加key更新:

如下圖:

systemctl restart named?? ??? ?#重啟dns

接下來測試一下該key能否更新dns:
nsupdate -k Kluckykey.+163+37031.private?? ??? ?#-k指定key,不指定send會失敗
> update add hello.lucky.com 86400 A 192.168.187.111?? ?#新增A記錄
> send?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#成功
> update del hello.lucky.com?? ??? ??? ??? ??? ??? ??? ?#刪除A記錄
> send?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#成功
> quit?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#退出
測試成功!繼續下一步

vim /etc/dhcp/dhcpd.conf ?? ??? ??? ?#編輯dncp配置文件

打開dns更新的“開關”:
第14行取消注釋,并改為interim(網絡更新):
ddns-update-style interim;

在最后指定key,相當于讓dhcp拿到了dns更新的“鑰匙”:
key luckykey {?? ??? ??? ??? ??? ??? ??? ?#我們前面取得key的名字,別寫錯了
? algorithm hmac-sha256;
? secret /P/GVMVRb/dNIjtr2qYvMg==;?? ??? ?#最好直接復制前面我們生成的key文件里的防止出錯
};

在最后加入key要更新的域:
zone lucky.com. {
? primary 127.0.0.1;?? ??? ??? ??? ??? ?#dns在本機,所以直接寫本機回環接口就可以了
? key luckykey;?? ??? ??? ??? ??? ??? ??? ?#我們前面取得key的名字,別寫錯了
}

刪掉jnl文件(不然前面的更新測試會影響):

rm -fr /var/named/lucky.com.zone.jnl

重啟兩個服務:

systemctl restart dhcpd

systemctl restart named

客戶端:
首先要關閉VM虛擬機的本地dhcp服務,如下圖操作即可:
##如果是真機是linux系統直接在虛擬機里改配置文件即可

選擇更改設置

取消勾選本地dhcp服務

然后將我們之前設置的靜態ip改為dhcp:

nm-connection-editor

測試下我們是否關閉本地dhcp成功:

nmcli connection up ens160? ? ? ? ? #重啟網卡

cat /etc/resolv.conf? ? ? ? #看下dns服務用的誰的

如圖是用的我們自己配置的,設置成功!

改下主機名方便測試:

hostnamectl? ? ? ?#查看主機名?

hostnamectl set-hostname nodeb.lucky.com? ? ? #改主機名為nodeb.lucky.com

測試:
客戶端:

dig? ? nodeb.lucky.com

ifconfig? ? ?看兩個出來的ip一樣否

如圖是一樣的

dns服務端:

vim /etc/dhcp/dhcpd.conf? ? ?#編輯dncp配置文件

改一下ip范圍:

我改為了77-90,如下圖:

重啟下dhcp服務: systemctl restart dhcpd

客戶端

nmcli connection up ens160? ? ? ? ? ? ? ? #重啟網卡,

那么會重新獲取ip

dig nodeb.lucky.com

ifconfig 看兩個出來的ip一樣否

如圖,重新獲取的ip是我們上面重新設置的范圍內的,dns解析也是同步的

測試成功!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/web/15383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15383.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于SSH的母嬰用品銷售管理系統帶萬字文檔

文章目錄 母嬰商城系統一、項目演示二、項目介紹三、系統部分功能截圖四、萬字論文參考五、部分代碼展示六、底部獲取項目源碼和萬字論文參考(9.9¥帶走) 母嬰商城系統 一、項目演示 母嬰商城系統 二、項目介紹 基于SSH的母嬰商城系統 系統…

Tina-Linux -- 3. LVGL測試

參考韋東山 – Tina_Linux_圖形系統_開發指南 Tina-linux lvgl 配置 環境配置 進入Tina-SDK根目錄 source build/envsetup.sh lunch XXX平臺名稱 make menuconfigLVGL Gui --->Littlevgl --->< > lv_demo<*> lv_examples &#xff08;lvgl官方demo&#…

【區塊鏈】fisco節點運維 更新ing

基于已完成的區塊鏈系統與管理平臺搭建工作&#xff0c;開展區塊鏈節點的加入與退出運維工作&#xff0c;具體內容如下 以下只是舉例子講 如果有其他修改沒舉例出來可以留言 私信 主要以比賽出題的形式講 區塊鏈節點輸出等級為警告級&#xff0c;并設置日志存儲閾值為100MB并…

主機與VMware虛擬機共享文件夾

虛擬機M --> 設置 --> 選項 --> 共享文件夾 虛擬機里的共享文件夾需要掛載 sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other from 主機與VMware虛擬機共享文件夾&#xff1a;解決虛擬機找不到共享文件夾問題 - 知乎

C++實現的代碼行數統計器

代碼在GitHubMaolinYe/CodeCounter: C20實現的代碼統計器&#xff0c;代碼量小于100行&#xff0c;可以統計目錄下所有代碼文件的行數 (github.com) 前段時間到處面試找實習&#xff0c;有技術負責人的負責人問我C寫過多少行&#xff0c;5萬還是10萬&#xff0c;用來評估熟練度…

Capture One Studio for Mac:打造完美影像的利器

對于攝影師而言&#xff0c;每一次按下快門都是一次對完美影像的追求。而Capture One Studio for Mac正是這樣一款能夠幫助你實現這一追求的利器。 Capture One Studio for Mac v16.4.2.1中文直裝版下載 首先&#xff0c;Capture One Studio for Mac擁有出色的圖像處理能力。它…

從零起航,Python編程全攻略

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、Python入門之旅 二、Python進階之道 三、Python爬蟲實戰 四、Python數據分析利器 五…

kind: Telemetry

訪問日志 訪問日志提供了一種從單個工作負載實例的角度監控和理解行為的方法。 Istio 能夠以一組可配置的格式為服務流量生成訪問日志&#xff0c; 使操作員可以完全控制日志記錄的方式、內容、時間和地點。 有關更多信息&#xff0c;請參閱獲取 Envoy 的訪問日志。 https:/…

TS+elementUI的表格做form校驗寫法(手機/郵箱號驗證)

1.form表單寫法 <template><div style"height:100%;width:100%;position:relative"><el-dialog title"編輯" :visible.sync"dialogVisible" width15% :close-on-click-modalfalse><el-form :model"form" :rule…

模塊化程序設計(函數的定義、調用、參數傳遞、局部變量、全局變量)

函數的引入&#xff1a; 我們曾經學習了程序設計中的三種基本控制結構&#xff08;順序、分支、循環&#xff09;。用它們可以組成任何程序。但在應用中&#xff0c;還經常用到子程序結構。 通常&#xff0c;在程序設計中&#xff0c;我們會發現一些程序段在程序的不同地方反復…

[python]當你認為python字符串的strip()或replace()不能刪除空格或者換行符的時候,看這里

str "123 abc\r\n" 當你調用 str.strip() 或 str.replace("\n","")之后&#xff0c;發現空格或換行符還存在&#xff0c; 是因為strip()和replace()沒有改變str本身的值&#xff0c;需要這樣重新賦值&#xff1a; str str.strip() ...

RabbitMQ 發布訂閱

RabbitMQ 發布訂閱視頻學習地址&#xff1a; 簡單模式下RabbitMQ 發布者發布消息 消費者消費消息 Publist/Subscribe 發布訂閱 在 RabbitMQ 中&#xff0c;發布訂閱模式是一種消息傳遞方式&#xff0c;其中發送者&#xff08;發布者&#xff09;不會將消息直接發送到特 定的…

基于open3d對kitti數據集檢測結果可視化

前言 KITTI數據集是自動駕駛和計算機視覺領域中一個廣泛使用的基準數據集&#xff0c;它提供了豐富的傳感器數據&#xff0c;包括激光雷達、相機和GPS等。Open3D是一個功能強大的3D數據處理和可視化庫&#xff0c;支持多種3D數據格式。本文將介紹如何使用Open3D對KITTI數據集的…

Python常見數據類型處理

一、數據類型分類 Python3 中常見的數據類型有&#xff1a; Number&#xff08;數字&#xff09;String&#xff08;字符串&#xff09;bool&#xff08;布爾類型&#xff09;List&#xff08;列表&#xff09;Tuple&#xff08;元組&#xff09;Set&#xff08;集合&#xf…

詳解 Spring MVC(Spring MVC 簡介)

什么是 Spring MVC&#xff1f; Spring MVC 是 Spring 框架提供的一個基于 MVC 模式的輕量級 Web 框架&#xff0c;是 Spring 為表示層開發提供的一整套完整的解決方案&#xff0c;Spring MVC 使用了 MVC 架構模式&#xff0c;將 Web 層職責解耦&#xff0c;基于請求驅動模型&…

基于Java、SpringBoot和uniapp在線考試系統安卓APP和微信小程序

摘要 基于Java、SpringBoot和uniapp的在線考試系統安卓APP微信小程序是一種結合了現代Web開發技術和移動應用技術的解決方案&#xff0c;旨在為教育機構提供一個方便、高效和靈活的在線考試平臺。該系統采用Java語言進行后端開發&#xff0c;使用SpringBoot框架簡化企業級應用…

SpringCloud微服務之Nacos、Feign、GateWay詳解

SpringCloud微服務之Nacos、Feign、GateWay詳解 1、Nacos配置管理1.1、統一配置管理1.1.1、在nacos中添加配置文件1.1.2、從微服務拉取配置 1.2、配置熱更新1.2.1、方式一1.2.2、方式二 1.3、配置共享1.3.1、配置共享的優先級 1.4、搭建nacos集群1.4.1、初始化數據庫1.4.2、下載…

plt多子圖設置

import matplotlib.pyplot as plt# 使用 subplots 函數創建一個 2x3 的子圖網格 fig, axs plt.subplots(nrows2, ncols3, figsize(16, 10)) # 調整 figsize 來改變圖像大小# 遍歷每個子圖&#xff0c;并繪制一些內容&#xff08;這里只是簡單的示例&#xff09; for ax in ax…

React與Vue的區別?

一、區別: 1. 語法 Vue采用自己特有的模板語法&#xff1b; React是單向的&#xff0c;采用jsx語法創建react元素。 2.監聽數據變化的實現原理不同 Vue2.0 通過Object.defineproperty()方法的getter/setter屬性, 實現數據劫持, 每次修改完數據會觸發diff算法(雙端對比) …

VUE 頁面生命周期基本知識點

在 Vue.js 中&#xff0c;頁面生命周期&#xff08;更準確地說是組件生命周期&#xff09;指的是組件從創建到銷毀的一系列過程。了解這些生命周期鉤子可以幫助我們更好地管理組件的狀態和行為。以下是 Vue 組件的主要生命周期鉤子&#xff1a; beforeCreate 在實例初始化之后&…