服務器綜合實驗(實戰詳解)

實驗內容

環境拓撲結構

主機環境描述

主機名主機地址需要提供的服務
content.exam.com172.25.250.101提供基于httpd/nginx的YUM倉庫服務
ntp.exam.com172.25.250.102提供基于Chronyd的NTP服務
mysql.exam.com172.25.250.103提供基于MYSQL的數據庫服務
nfs.exam.com172.25.250.104提供基于NFS的網絡文件系統服務
dns.exam.com172.25.250.105提供基于bind的DNS服務
bbs.exam.com172.25.250.106提供基于Discuz的論壇服務

注意:

- 172.25.250.101-172.25.250.105共5個IP地址由servera.exam.com服務器進行提供。
- 172.25.250.106由serverb.exam.com服務器進行提供。

需求描述

  1. 172.25.250.101 主機上的 Web 服務要求提供www.exam.com站點,該站點在任何路由可達的主機上被訪問,頁面內容顯示為"Hello,Welcome to www.exam.com!",并提供 content.exam.com/yum/AppStreamcontent.exam.com/yum/BaseOS URL 作為網絡倉庫供所有主機使用。

  2. 172.25.250.102 主機提供基于 Chronyd 的 NTP 服務將本主機作為時間服務器,對外提供 NTP 服務,并設置本服務器為 3 層。

  3. 172.25.250.103 主機提供的 MySQL 數據庫服務,要求使用需求 1 中提供的倉庫進行安裝,并將數據庫密碼設定為 redhat 。創建名稱為 bbs 的數據庫提供給論壇服務使用。

  4. 172.25.250.104 主機提供 NFS 服務,該服務將導出本地的 /bbs 目錄作為論壇數據目錄,該導出指定只能論壇所 在主機使用,并且開機自動掛載。

  5. 172.25.250.105 主機提供 DNS 服務,該服務需要提供對項目中所有主機名的正向和反向解析,并要求所有服務器的 DNS 配置為該 DNS 服務器。

  6. 172.25.250.106 主機提供基于 Discuz 的論壇服務,該論壇服務使用?172.25.250.103 主機提供的數據庫 bbs , 使用172.25.250.104 主機提供的 NFS 作為論壇數據目錄,并開機掛載。并使用 172.25.250.101 主機提供的網絡倉庫, 172.25.250.102 主機提供的 NTP 服務, 172.25.250.105 主機提供的 DNS 服務。

  7. 所有服務器的防火墻服務和 SELinux 服務必須開啟。

  8. 所有服務器提供的網絡服務必須在系統重啟后仍然可以正常提供服務。

實驗完成步驟

該實驗的完成步驟不完全根據需求的條目進行,而是在分析完需求之后進行操作

虛擬機準備

準備兩個虛擬機A、B(現在兩臺設備都處于初始化的狀態,即沒有做任何的設置),將虛擬網絡改為172.25.250.0

配置兩個虛擬機的本地倉庫

配置本地倉庫用于后續軟件包的下載

vim /etc/yum.repos.d/rpm.repo

[BaseOS]
name=baseos
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=appstream
baseurl=/mnt/AppStream
gpgcheck=0

掛載:mount /dev/sr0 /mnt

預備軟件包下載:dnf install lrz* bash-com* vim net-tools -y

虛擬機A:

添加IP地址、網關以及DNS服務:

[root@bogon ~]# nmcli connection modify ens160 +ipv4.addresses 172.25.250.101/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

[root@bogon ~]# nmcli connection modify ens160 +ipv4.addresses 172.25.250.102/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

[root@bogon ~]# nmcli connection modify ens160 +ipv4.addresses 172.25.250.103/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

[root@bogon ~]# nmcli connection modify ens160 +ipv4.addresses 172.25.250.104/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

[root@bogon ~]# nmcli connection modify ens160 +ipv4.addresses 172.25.250.105/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

啟用IP地址、網關以及DNS服務:

[root@bogon ~]# nmcli connection up ens160

修改主機名:

[root@localhost ~]# hostnamectl set-hostname servera.exam.com

虛擬機B:

添加IP地址、網關以及DNS服務:

[root@bogon ~]# nmcli connection modify ens160 ipv4.addresses 172.25.250.106/24 ipv4.method manual ipv4.gateway 172.25.250.2 ipv4.dns 172.25.250.105 connection.autoconnect yes

啟用IP地址、網關以及DNS服務:

[root@bogon ~]# nmcli connection up ens160

修改主機名:

[root@localhost ~]# hostnamectl set-hostname serverb.exam.com

配置SSH公鑰互信

虛擬機A:

生成 SSH 密鑰對(公鑰和私鑰):[root@servera ~]# ssh-keygen

查看鑰匙配置情況:[root@servera ~]# tree .ssh

將本地用戶的 SSH 公鑰復制到遠程服務器的指定用戶賬戶中,以便后續可以通過公鑰認證的方式免密登錄遠程服務器

[root@servera ~]# ssh-copy-id root@172.25.250.106

注意:

確認:Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

輸入對應主機的密碼:root@172.25.250.106's password:

同上:

[root@servera ~]# ssh-copy-id root@172.25.250.101

[root@servera ~]# ssh-copy-id root@172.25.250.102

[root@servera ~]# ssh-copy-id root@172.25.250.103

[root@servera ~]# ssh-copy-id root@172.25.250.104

[root@servera ~]# ssh-copy-id root@172.25.250.105

虛擬機B:

生成 SSH 密鑰對(公鑰和私鑰):[root@serverb ~]# ssh-keygen

查看鑰匙配置情況:[root@serverb ~]# tree .ssh

將本地用戶的 SSH 公鑰復制到遠程服務器的指定用戶賬戶中,以便后續可以通過公鑰認證的方式免密登錄遠程服務器

[root@serverb ~]# ssh-copy-id root@172.25.250.101

確認:Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

輸入對應主機的密碼:root@172.25.250.101's password:

同上:

[root@serverb ~]# ssh-copy-id root@172.25.250.106

兩個主機進行相互之間的連接嘗試

[root@servera ~]# ssh root@172.25.250.106

[root@serverb ~]# ssh root@172.25.250.101

兩臺主機相互之間皆連接成功

提供基于bind的DNS服務

虛擬機A:

下載服務軟件包:[root@servera ~]# dnf install bind -y

配置文件

[root@servera ~]# vim /etc/named.conf

options {listen-on port 53 { 172.25.250.105; };directory		"/var/named";
};
zone "exam.com" IN {type master;file "named.exam";
};

區域解析文件

[root@servera ~]# vim /var/named/named.exam

$TTL 1D
@		IN		SOA		@		admin.exam.com (01111)IN		NS		dns.exam.com.
dns		IN		A		172.25.250.105
content	IN		A		172.25.250.101
ntp		IN		A		172.25.250.102
mysql	IN		A		172.25.250.103
nfs		IN		A		172.25.250.104
bbs		IN		A		172.25.250.106

查看DNS的服務:[root@servera ~]# nmcli connection show ens160 | grep DNS

重啟服務:[root@servera ~]# systemctl restart named

查詢域名exam.com的名稱服務器記錄(Name Server,NS)

[root@servera ~]# dig -t NS exam.com

觀察ANSWER SECTION部分的反饋

項目需求1

虛擬機A:

下載Nginx服務:[root@servera ~]# dnf install nginx -y

開啟服務:[root@servera ~]# systemctl start nginx

加載本地網頁:[root@servera ~]# curl localhost

創建網絡地址的目錄:[root@servera ~]# mkdir /usr/share/nginx/html/yum

將鏡像文件掛載到對應的目錄:[root@servera ~]# mount /dev/sr0 /usr/share/nginx/html/yum

書寫自動掛載的文件:[root@servera ~]# vim /etc/fstab

/dev/sr0     /usr/share/nginx/html/yum    iso9660     defaults 0 0

在Windows的微軟瀏覽器查看相關的網頁

防火墻放行服務

[root@servera ~]# firewall-cmd --permanent --add-service=http

[root@servera ~]# firewall-cmd --permanent --add-service=dns

[root@servera ~]# firewall-cmd --reload

將 SELinux(Security-Enhanced Linux)切換到寬容模式(Permissive Mode)

[root@servera ~]# setenforce 0

編輯文件:[root@servera ~]# vim /etc/nginx/nginx.conf

在server{

listen 80;

listen [ : : ] :80;

server_name _;

root /usr/share/nginx/html;

index???????????????? #添加的index

}

重啟服務:[root@servera ~]# systemctl restart nginx

訪問:172.25.250.101? ? ? ? ?172.25.250.101/yum? ? ? ? ? 172.25.250.101/yum/GPL

開機自動啟動:[root@servera ~]# systemctl enable nginx

配置網絡倉庫

[root@servera ~]# vim /etc/yum.repos.d/rpm.repo

[BaseOS]
name=baseos
baseurl=http://content.exam.com/yum/BaseOS
gpgcheck=0
[AppStream]
name=appstream
baseurl=http://content.exam.com/yum/AppStream
gpgcheck=0

下載軟件包:

[root@servera ~]# dnf install vsftpd -y

在區域解析文件添加相應的服務

[root@servera ~]# vim /var/named/named.exam

$TTL 1D
@		IN		SOA		@		admin.exam.com (01111)IN		NS		dns.exam.com.
dns		IN		A		172.25.250.105
content	IN		A		172.25.250.101
ntp		IN		A		172.25.250.102
mysql	IN		A		172.25.250.103
nfs		IN		A		172.25.250.104
bbs		IN		A		172.25.250.106
servera IN		A		172.25.250.101
serverb IN		A		172.25.250.106

重啟服務:[root@servera ~]# systemctl restart named

虛擬機B:

[root@serverb ~]# cd /etc/yum.repos.d

復制虛擬機A的網絡倉庫到虛擬機B(快捷方式,減少重寫的步驟)

[root@serverb yum.repos.d]# scp root@servera.exam.com:/etc/yum.repos.d/rpm.repo .

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

下載軟件包:

[root@serverb yum.repos.d]# dnf install vsftpd -y

虛擬機A:

區域解析文件添加www服務

[root@servera ~]# vim /var/named/named.exam

$TTL 1D
@		IN		SOA		@		admin.exam.com (01111)IN		NS		dns.exam.com.
dns		IN		A		172.25.250.105
content	IN		A		172.25.250.101
ntp		IN		A		172.25.250.102
mysql	IN		A		172.25.250.103
nfs		IN		A		172.25.250.104
bbs		IN		A		172.25.250.106
servera IN		A		172.25.250.101
serverb IN		A		172.25.250.106
www		IN		A		172.25.250.101

重啟服務:[root@servera ~]# systemctl restart named

ping網址:[root@servera ~]# ping www.exam.com

刪除默認網頁內容:[root@servera ~]# rm -rf /usr/share/nginx/html/index.html

將內容書寫到默認的網頁:[root@servera ~]# echo "welcome to www.exam.com" > /usr/share/nginx/html/index.html

(刪掉剛才添加的index)

編輯文件:[root@servera ~]# vim /etc/nginx/nginx.conf

重啟服務:[root@servera ~]# systemctl restart nginx

訪問網頁:[root@servera ~]# curl www.exam.com

項目需求2

虛擬機A:

編輯Chrony服務的配置文件

[root@servera ~]# vim /etc/chrony.conf

復制注釋:allow 192.168.0.0/16 改為:allow 172.25.250.0/24

復制注釋:local stratum 10 改為:local stratum 3

復制注釋:log measurements statistics tracking 打開

開機自動啟動:[root@servera ~]# systemctl enable chronyd

重啟服務:[root@servera ~]# systemctl restart chronyd

虛擬機B:

編輯Chrony服務的配置文件

[root@serverb ~]# vim /etc/chrony.conf

將:pool 2.rhel.pool.ntp.org iburst 注釋掉

寫:server ntp.exam.com iburst

重啟服務:[root@serverb ~]# systemctl restart chronyd

虛擬機A:

放行服務:[root@servera ~]# firewall-cmd --permanent --add-service=ntp

重新加載防火墻:[root@servera ~]# firewall-cmd --reload

虛擬機B:

重啟服務:[root@serverb ~]# systemctl restart chronyd

查看 Chrony 客戶端當前已知的時間源(即時間服務器)及其狀態

[root@serverb ~]# chronyc sources

項目需求3

虛擬機A:

下載數據庫相關的軟件包

[root@servera ~]# dnf install mysql-server -y

確保系統啟動時自動啟動,并立即開始運行

[root@servera ~]# systemctl enable --now mysqld

grep password /var/log/mysql/mysqld.log 顯示沒有設置密碼

登錄數據庫:[root@servera ~]# mysql -uroot -p

設置數據庫的密碼:mysql> alter user 'root'@'localhost' identified by 'redhat';

mysql> exit

登錄數據庫:[root@servera ~]# mysql -uroot -p 輸入密碼:redhat

創建數據庫:mysql> create database bbs;

虛擬機B:

下載數據庫相關的軟件包

[root@serverb ~]# dnf install mysql-server -y

項目需求4

虛擬機A:

創建目錄:[root@servera ~]# mkdir /bbs

編寫文件:[root@servera ~]# vim /etc/exports

/bbs	bbs.exam.com(rw)

下載軟件包:[root@servera ~]# dnf install nfs-utils -y

確保系統啟動時自動啟動,并立即開始運行

[root@servera ~]# systemctl enable --now nfs-server

放行服務:

[root@servera ~]# firewall-cmd --permanent --add-service=nfs

[root@servera ~]# firewall-cmd --permanent --add-service=rpc-bind

[root@servera ~]# firewall-cmd --permanent --add-service=mountd

重新加載防火墻:[root@servera ~]# firewall-cmd --reload

虛擬機B:

下載軟件包:[root@serverb ~]# dnf install nfs-utils -y

查看 NFS(網絡文件系統)服務器上可導出的文件系統

[root@serverb ~]# showmount -e nfs.exam.com

下載軟件包:[root@serverb ~]# dnf install httpd -y

掛載:[root@serverb ~]# mount nfs.exam.com:/bbs /var/www/html

虛擬機A:

查看目錄的相關信息:[root@servera ~]# ll /bbs -d

給所有的權限:[root@servera ~]# chmod 777 /bbs

虛擬機B:

[root@serverb ~]# touch /var/www/html/index.html

[root@serverb ~]# vim /etc/fstab

nfs.exam.com:/bbs  /var/www/html	nfs		defaults	0 0

項目需求5

反向解析:

虛擬機A:

配置文件:

[root@servera ~]# vim /etc/named.conf

options {listen-on port 53 { 172.25.250.105; };directory		"/var/named";
};
zone "exam.com" IN {type master;file "named.exam";
};
zone "250.25.172.in-addr.arpa" IN {type master;file "named.fanxiang";
};

區域解析文件:

[root@servera ~]# vim /var/named/named.fanxiang

$TTL 1D
@		IN		SOA		@		admin.exam.com (01111)IN		NS		dns.exam.com.
105		IN		PTR		dns.exam.com.
101		IN		PTR		content.exam.com.
102		IN		PTR		ntp.exam.com.
103		IN		PTR		mysql.exam.com.
104		IN		PTR		nfs.exam.com.
106		IN		PTR		bbs.exam.com.

重啟服務:[root@servera ~]# systemctl restart named

進行反向解析并觀察ANSWER SECTION部分的反饋

[root@servera ~]# dig -x 172.25.250.101 @172.25.250.105

[root@servera ~]# dig -x 172.25.250.102 @172.25.250.105

[root@servera ~]# dig -x 172.25.250.103 @172.25.250.105

[root@servera ~]# dig -x 172.25.250.104 @172.25.250.105

[root@servera ~]# dig -x 172.25.250.105 @172.25.250.105

項目需求6

虛擬機B:

將論壇壓縮文件放入/var/www/html 目錄

下載軟件包:[root@serverb ~]# dnf install unzip -y

原有軟件包就不用下載,如果沒有軟件包下載便是

[root@serverb ~]# cd /var/www/html

解壓zip文件:unzip + filename

[root@serverb html]# unzip Discuz_X3.5_SC_UTF8_20230520.zip

虛擬機A:

查看目錄:[root@servera ~]# ll /bbs

該目錄會自動多出一些文件

虛擬機B:

進入目錄:[root@serverb html]# cd upload

給所有的權限:[root@serverb upload]# chmod 777 uc_server/ uc_client/ data/ config/ -R

重啟服務:[root@serverb upload]# systemctl start httpd

放行服務:[root@serverb upload]# firewall-cmd --permanent --add-service=http

重新加載防火墻:[root@serverb upload]# firewall-cmd --reload

將 SELinux 設置為寬容模式(Permissive Mode):[root@serverb upload]# setenforce 0

瀏覽器搜索:172.25.250.106/upload/

下載軟件包:[root@serverb upload]# dnf install php* -y

重啟服務:[root@serverb upload]# systemctl restart httpd

刷新頁面

虛擬機A:

查看防火墻列表:[root@servera ~]# firewall-cmd --list-all

放行服務:[root@servera ~]# firewall-cmd --permanent --add-service=mysql

[root@servera ~]# firewall-cmd --reload

登錄數據庫:[root@servera ~]# mysql -uroot -p 密碼:redhat

使用數據庫:mysql> use mysql;

查看數據庫中所有用戶的用戶名和允許連接的主機信息

mysql> select user,host from mysql.user;

允許root用戶從任何主機連接到數據庫

mysql> update mysql.user set host='%' where user='root';

mysql> select user,host from mysql.user;

mysql> exit

重啟服務:[root@servera ~]# systemctl restart mysqld

虛擬機B:

這條命令通過指定用戶名、主機名和端口號,允許用戶登錄到遠程或本地的 MySQL 數據庫服務器

[root@serverb ~]# mysql -uroot -p -h mysql.exam.com --port 3306

數據庫服務器地址:mysql.exam.com
數據庫名:bbs
數據庫用戶名:root
數據庫密碼:redhat
數據表前綴:pre_
系統信箱Email:admin@admin.com

管理員賬號:admin
管理員密碼:redhat
重復密碼:redhat
管理員Email:admin@admin.com

返回到網址刷新后再進行相關的操作

項目需求7+8

虛擬機A:

查看當前 SELinux(Security-Enhanced Linux)工作模式的命令

[root@servera ~]# getenforce

將 SELinux(Security-Enhanced Linux)切換到強制模式(Enforcing Mode)

[root@servera ~]# setenforce 1

查看 SELinux 的配置狀態

[root@servera ~]# grep SELINUX /etc/selinux/config

虛擬機B:

將 SELinux(Security-Enhanced Linux)切換到寬容模式(Permissive Mode)

[root@serverb ~]# setenforce 0

顯示 SELinux(Security-Enhanced Linux)當前狀態

[root@serverb ~]# sestatus

將 SELinux(Security-Enhanced Linux)切換到強制模式(Enforcing Mode)

[root@serverb ~]# setenforce 1

顯示 SELinux(Security-Enhanced Linux)當前狀態

[root@serverb ~]# sestatus

確保服務在系統啟動時自動啟動,并立即開始運行

[root@serverb ~]# systemctl enable --now httpd

虛擬機A:

確保服務在系統啟動時自動啟動,并立即開始運行

[root@servera ~]# systemctl enable nginx

[root@servera ~]# systemctl enable chronyd

[root@servera ~]# systemctl enable mysqld

[root@servera ~]# systemctl enable nfs-server

[root@servera ~]# systemctl enable named

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

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

相關文章

CentOS 7 修改鎖屏時間為永不

在 CentOS 7 中,默認情況下,系統會在一定時間不活動后自動鎖屏。對于某些用戶來說,可能希望禁用自動鎖屏功能或者將鎖屏時間設置為“永不”。本文將介紹如何通過圖形界面和命令行兩種方式修改 CentOS 7 的鎖屏時間,確保系統永不自…

MySQL 日期計算方法 date_sub()、date_add()、datediff() 詳解-文中有示例幫助理解

1、date_sub()、date_add() date_sub() 和date_add() 語法相同,只不過一個加一個減。 從日期中減去指定時間間隔 語法: DATE_SUB(start_date, INTERVAL expr unit) start_date: 起始日期(如 now() , 字段名)。 INTERVAL expr…

寶塔基于亞馬遜云服務器安裝mysql5.7失敗問題記錄

安裝日志如下: --2025-05-14 15:25:15-- https://na1-node.bt.cn/install/1/mysql.sh Resolving na1-node.bt.cn (na1-node.bt.cn)... 128.1.164.196 Connecting to na1-node.bt.cn (na1-node.bt.cn)|128.1.164.196|:443... connected. HTTP request sent, awaitin…

LLaMA-Factory 微調 Qwen2-7B-Instruct

一、系統環境 使用的 autoDL 算力平臺 1、下載基座模型 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com # (可選)配置 hf 國內鏡像站huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat -…

Redis三種高可用模式的使用場景及特點的詳細介紹

Redis三種高可用模式的使用場景及特點的詳細介紹,結合不同業務需求提供選擇建議: 主從模式(Replication) 核心能力:數據冗余備份、讀寫分離 適用場景: 讀多寫少:例如內容發布平臺、新聞網站等…

通俗易懂版知識點:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

實驗開始前,先搞懂為什么要部署該集群? 這個方案的目標是讓網站 永不宕機,即使某臺服務器掛了,用戶也感覺不到。它主要涉及 負載均衡(LVS) 高可用(Keepalived) 共享存儲&#xff…

Qt中解決UI線程阻塞導致彈窗無法顯示的兩種方法

在Qt應用程序開發中,我們經常會遇到這樣的問題:當執行一個耗時操作時,整個界面會卡住,無法響應任何用戶操作,甚至連一個簡單的提示彈窗都無法正常顯示。本文將介紹兩種解決這個問題的方法,并通過完整的代碼示例進行說明。 問題描述 先來看一個常見的錯誤示例: #inclu…

2025年中國DevOps工具選型指南:主流平臺能力橫向對比

在數字化轉型縱深發展的2025年,中國企業的DevOps工具選型呈現多元化態勢。本文從技術架構、合規適配、生態整合三個維度,對Gitee、阿里云效(云效DevOps)、GitLab CE(中國版)三大主流平臺進行客觀對比分析&a…

isp流程介紹(yuv格式階段)

一、前言介紹 前面兩章里面,已經分別講解了在Raw和Rgb域里面,ISP的相關算法流程,從前面文章里面可以看到,在Raw和Rgb域里面,很多ISP算法操作,更像是屬于sensor矯正或者說sensor標定操作。本質上來說&#x…

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框 code review! 文章目錄 虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框1. 退出編輯器時彈出的“Save Content”窗口2. File 菜單中的保存選項3. 區別總結 1. 退出編輯器時彈出的“Save Content”窗口 退出時…

如何判斷IP是否被平臺標記

一、基礎檢測:連通性與黑名單篩查 網絡連通性測試 Ping與Traceroute:通過命令測試延遲和路由路徑,若延遲>50ms或存在異常節點(如某跳延遲>200ms),可能影響可用性。示例命令: bash ping 8.…

零Gas授權實戰:用線下簽名玩轉智能合約 Permit 機制

目錄 鏈下簽名背景什么是 Permit ?鏈下簽名應用場景Permit 原理簡述實戰:從合約到前端完整實現安全注意事項總結鏈下簽名背景 在以太坊智能合約開發中,很多初學者經常面臨這樣一個問題:ERC20 代幣授權必須先調用鏈上合約的 approve(),再調用鏈上合約的 transferFrom(),每…

React 簡介:核心概念、組件化架構與聲明式編程

本文為《React Agent:從零開始構建 AI 智能體》專欄系列文章。 專欄地址:https://blog.csdn.net/suiyingy/category_12933485.html。項目地址:https://gitee.com/fgai/react-agent(含完整代碼示?例與實戰源)。完整介紹…

LeetCode100.7 接雨水

對于這題&#xff0c;有一個非常直觀簡潔的思路&#xff1a;水量等于柱子圍成的體積減去柱子的體積。 首先計算每一個高度的體積&#xff0c;相加即為總體積&#xff0c;減去sum(height)即為水的體積。 class Solution { public:int trap(vector<int>& height) {in…

NineData 社區版 V4.1.0 正式發布,新增 4 條遷移鏈路,本地化數據管理能力再升級

NineData 社區版 V4.1.0 正式更新發布。本次通過新增 4 條遷移鏈路擴展、國產數據庫深度適配、敏感數據保護增強?等升級&#xff0c;進一步鞏固了其作為高效、安全、易用的數據管理工具的定位。無論是開發測試、數據遷移&#xff0c;還是多環境的數據管理&#xff0c;NineData…

Go 語言 sqlx 庫使用:對 MySQL 增刪改查

MySQL 作為目前最流行的開源關系型數據庫&#xff0c;其 SQL 語法體系已形成行業標準&#xff0c;相關知識體系龐大且成熟&#xff0c;本文不再對 SQL 基礎進行詳細展開&#xff0c;建議尚未掌握的讀者先行系統學習。本文聚焦于如何使用 Go 語言進行 MySQL 數據庫操作&#xff…

單片機-STM32部分:13、PWM

飛書文檔https://x509p6c8to.feishu.cn/wiki/NjhuwbVP7iaEOikVK95cmJNLnWf PWM&#xff08;Pulse Width Modulation&#xff09;脈沖寬度調制&#xff0c;是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。它是把每一脈沖寬度均相等的脈沖列作為PWM波形&am…

抽獎系統-獎品-活動

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言獲取獎品列表前端頁面活動創建需求分析活動創建后端實現1-控制層實現及校驗活動活動創建后端實現2-保存信息活動插入活動獎品插入 整合活動信息存入redis測試活…

Dense 與 MoE 系列模型架構的全面對比與應用策略

0. 簡介 人工智能領域正經歷著一場架構革命&#xff0c;從傳統的密集連接模型&#xff08;Dense&#xff09;向混合專家模型&#xff08;Mixture of Experts, MoE&#xff09;的轉變。本文將全面剖析這兩種模型架構的本質差異、各自優勢與挑戰&#xff0c;并提供戰略性的選擇框…

代碼隨想錄算法訓練營第四十天

LeetCode題目: 647. 回文子串516. 最長回文子序列 其他: 今日總結 往期打卡 647. 回文子串 跳轉: 647. 回文子串 學習: 代碼隨想錄公開講解 問題: 給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。…