該服務(wù)涉及到的技術(shù)較多,相關(guān)技術(shù)文檔的具體解釋可以參考以下鏈接:
創(chuàng)新互聯(lián)是一家專業(yè)提供淮南企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為淮南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。Centos 7基于DR(直接路由)模式的負(fù)載均衡配置詳解;
Centos 7基于NAT(地址轉(zhuǎn)換)模式的負(fù)載均衡配置詳解;
LVS負(fù)載均衡群集詳解;
centos 7之keepalived雙機(jī)熱備理論+配置文件詳解;
上面的博文結(jié)合,可以搭建出keepalived+DR/NAT模式的高可用web群集,這篇博文以keepalived+DR的環(huán)境來搭建一個(gè)高可用的web服務(wù)群集。
該博文以配置為主,并且按照生產(chǎn)環(huán)境來配置,可照搬,環(huán)境如下:
一、環(huán)境分析:
1、2個(gè)調(diào)度器和2個(gè)web節(jié)點(diǎn)使用同一個(gè)網(wǎng)段地址,可以直接和外網(wǎng)通信。為了共享存儲(chǔ)的
安全性,一般將web節(jié)點(diǎn)和存儲(chǔ)服務(wù)器規(guī)劃到內(nèi)網(wǎng)環(huán)境,所以web節(jié)點(diǎn)必須有兩個(gè)及以上
網(wǎng)卡的接口。
2、我這里資源有限,也為了配置方便,所以調(diào)度器和web節(jié)點(diǎn)分別只有兩個(gè),在web訪問請(qǐng)
求量不大的情況下,足夠了,但是若訪問請(qǐng)求比較大,那么最少要分別配置三個(gè)調(diào)度器和
web節(jié)點(diǎn),如果只有兩個(gè)web節(jié)點(diǎn)的話,訪問量又比較大,那么一旦有一個(gè)宕機(jī)了,那剩下
一個(gè)獨(dú)苗必定會(huì)因?yàn)榭覆蛔〖ぴ龅脑L問請(qǐng)求,而被打死。
3、準(zhǔn)備系統(tǒng)映像,以便安裝相關(guān)服務(wù)。
4、自行配置防火墻策略和除了VIP之外的IP地址(我這里直接關(guān)閉了防火墻)。
5、keepalived會(huì)自動(dòng)調(diào)用IP_vs模塊,所以無需手動(dòng)加載。
二、最終效果:
1、 客戶端多次訪問群集的VIP,得到的是同一個(gè)網(wǎng)頁。
2、主調(diào)度器宕機(jī)后,群集的VIP地址將會(huì)自動(dòng)漂移到從(備份)調(diào)度器,此時(shí),所有
的調(diào)度任務(wù)由從調(diào)度器進(jìn)行分配。當(dāng)主調(diào)度器恢復(fù)運(yùn)行后,群集的VIP地址會(huì)自動(dòng)轉(zhuǎn)移回
主調(diào)度器,主調(diào)度器繼續(xù)工作,從調(diào)度器轉(zhuǎn)回備份狀態(tài)。
3、web節(jié)點(diǎn)宕機(jī)后,會(huì)被keepalived健康檢查功能檢測到,從而自動(dòng)在web節(jié)點(diǎn)池中去除
宕機(jī)的節(jié)點(diǎn),待web節(jié)點(diǎn)恢復(fù)運(yùn)行后,會(huì)被自動(dòng)添加到web節(jié)點(diǎn)池中。
三、開始搭建:
1、配置主調(diào)度器(LVS1):
[root@LVS1 ~]# yum -y install keepalived ipvsadm #安裝所需工具
[root@LVS1 ~]# vim /etc/sysctl.conf #調(diào)整內(nèi)核參數(shù),寫入下面三行
.....................
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS1 ~]# sysctl -p #刷新一下
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS1 ~]# cd /etc/keepalived/
[root@LVS1 keepalived]# cp keepalived.conf keepalived.conf.bak #備份配置文件
[root@LVS1 keepalived]# vim keepalived.conf #編輯keepalived配置文件
#以下標(biāo)注的行是需要進(jìn)行更改的,沒有標(biāo)注的行,保持默認(rèn)即可
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc #收件人地址(沒需要的話可以不做修改)
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #發(fā)件人姓名、地址(可不做修改)
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL1 #本服務(wù)器的名稱改一下,在群集中所有調(diào)度器名稱里必須唯一。
}
vrrp_instance VI_1 {
state MASTER #設(shè)置為主調(diào)度器
interface ens33 #承載VIP地址的物理網(wǎng)卡接口根據(jù)實(shí)際情況改一下
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
200.0.0.100 #指定漂移IP地址(VIP),可以有多個(gè)。
}
}
virtual_server 200.0.0.100 80 { #改為VIP地址及所需端口
delay_loop 6
lb_algo rr #根據(jù)需要改一下負(fù)載調(diào)度算法,rr表示輪詢。
lb_kind DR #設(shè)置工作模式為DR(直接路由)模式。
! persistence_timeout 50 #為了一會(huì)測試看到效果,將連接保持這行前加“ !”將該行注釋掉。
protocol TCP
real_server 200.0.0.4 80 { #一個(gè)web節(jié)點(diǎn)的配置,real_server 200.0.0.4 80 { ..... }是復(fù)制下面的。復(fù)制過來后,更改一下節(jié)點(diǎn)IP地址即可。
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 200.0.0.3 80 { #一個(gè)web節(jié)點(diǎn)的配置,改動(dòng)完成后,有幾個(gè)節(jié)點(diǎn)就復(fù)制幾份real_serve 200.0.0.3 80 { ..... }到該行的上方,最好別往下面粘貼,以防大括號(hào)丟失。
weight 1
TCP_CHECK {
connect_port 80 #添加該行,以配置連接端口
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
#以下還有很多配置項(xiàng),我這里有98行,全部刪除即可,若不刪除時(shí)重啟服務(wù)可能報(bào)錯(cuò)。
[root@LVS1 ~]# systemctl restart keepalived #重啟服務(wù)
[root@LVS1 ~]# systemctl enable keepalived #設(shè)置開機(jī)自啟動(dòng)
至此,主調(diào)度器配置完畢?。?!
2、配置從調(diào)度器(LVS2):
[root@LVS2 ~]# yum -y install ipvsadm keepalived #安裝所需工具
[root@LVS2 ~]# scp root@200.0.0.1:/etc/sysctl.conf /etc/
#將主調(diào)度器的/proc參數(shù)文件復(fù)制過來
root@200.0.0.1 s password: #輸入主調(diào)度器的用戶密碼
sysctl.conf 100% 566 205.8KB/s 00:00
[root@LVS2 ~]# sysctl -p #刷新
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS2 ~]# scp root@200.0.0.1:/etc/keepalived/keepalived.conf /etc/keepalived/
#將主調(diào)度器的keepalived配置文件復(fù)制過來,稍微改動(dòng)即可。
root@200.0.0.1 s password: #輸入主調(diào)度器的用戶密碼
keepalived.conf 100% 1053 2.5MB/s 00:00
[root@LVS2 ~]# vim /etc/keepalived/keepalived.conf #編輯復(fù)制過來的配置文件
#若兩臺(tái)服務(wù)器都是ens33網(wǎng)卡的話,那么所需該的只有以下三項(xiàng)(其他項(xiàng)保持默認(rèn)):
router_id LVS_DEVEL2 #將route_id改為不一樣的。route_id必須是唯一的。
state BACKUP #狀態(tài)改為BACKUP,注意大小寫。
priority 90 #優(yōu)先級(jí)要比主調(diào)度器小,并且不可與其他備份調(diào)度器優(yōu)先級(jí)沖突。
[root@LVS2 ~]# systemctl restart keepalived #啟動(dòng)服務(wù)
[root@LVS2 ~]# systemctl enable keepalived #設(shè)置開機(jī)自啟動(dòng)
至此,從調(diào)度器也配置完成了,若需要部署多個(gè)從調(diào)度器,按照以上這個(gè)從(備份)調(diào)度器配置即可。
3、配置web1節(jié)點(diǎn):
[root@Web1 ~]# cd /etc/sysconfig/network-scripts/
[root@Web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0 #復(fù)制一份回環(huán)地址的配置文件
[root@Web1 network-scripts]# vim ifcfg-lo:0 #編輯回環(huán)地址,以承載群集的VIP。
DEVICE=lo:0 #更改網(wǎng)卡名稱
IPADDR=200.0.0.100 #配置群集的VIP
NETMASK=255.255.255.255 #子網(wǎng)掩碼必須為4個(gè)255。
ONBOOT=yes
#保留上面四行配置項(xiàng)即可,多余的刪除。
[root@Web1 network-scripts]# ifup lo:0 #啟動(dòng)回環(huán)接口
[root@Web1 ~]# ifconfig lo:0 #查看VIP配置是否正確
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 200.0.0.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
[root@web1 ~]# route add -host 200.0.0.100 dev lo:0 #添加VIP本地訪問路由記錄
[root@web1 ~]# vim /etc/rc.local #設(shè)置開機(jī)自動(dòng),添加這條路由記錄
................................
/sbin/route add -host 200.0.0.100 dev lo:0
[root@web1 ~]# vim /etc/sysctl.conf #調(diào)整/proc響應(yīng)參數(shù),寫入下面六行
...................
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@web1 ~]# sysctl -p #刷新一下
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@web1 ~]# yum -y install httpd #安裝http服務(wù)
[root@Web1 ~]# echo 111111111111 > /var/www/html/index.html #準(zhǔn)備測試網(wǎng)頁文件
[root@Web1 ~]# systemctl start httpd #啟動(dòng)http服務(wù)
[root@Web1 ~]# systemctl enable httpd #設(shè)置開機(jī)自啟動(dòng)
至此,第一個(gè)web節(jié)點(diǎn)已經(jīng)配置完成。
4、配置web2節(jié)點(diǎn):
[~]# scp root@200.0.0.3:/etc/sysconfig/network-scrts/ifcfg-lo:0 /etc/sysconfig/network-scripts/
#復(fù)制web1節(jié)點(diǎn)的lo:0配置文件
The authenticity of host '200.0.0.3 (200.0.0.3)' can't be established.
ECDSA key fingerprint is b8:ca:d6:89:a2:42:90:97:02:0a:54:c1:4c:1e:c2:77.
Are you sure you want to continue connecting (yes/no)? yes #輸入yes
Warning: Permanently added '200.0.0.3' (ECDSA) to the list of known hosts.
root@200.0.0.3's password: #輸入web1節(jié)點(diǎn)用戶的密碼
ifcfg-lo:0 100% 66 0.1KB/s 00:00
[root@Web2 ~]# ifup lo:0 #啟用lo:0
[root@Web2 ~]# ifconfig lo:0 #確認(rèn)VIP無誤
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 200.0.0.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
[root@Web2 ~]# scp root@200.0.0.3:/etc/sysctl.conf /etc/ #復(fù)制內(nèi)核文件
root@200.0.0.3's password: #輸入web1節(jié)點(diǎn)用戶的密碼
sysctl.conf 100% 659 0.6KB/s 00:00
[root@Web2 ~]# sysctl -p #刷新一下
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@Web2 ~]# route add -host 200.0.0.100 dev lo:0 #添加VIP本地訪問路由記錄
[root@Web2 ~]# vim /etc/rc.local #設(shè)置開機(jī)自動(dòng),添加這條路由記錄
................................
/sbin/route add -host 200.0.0.100 dev lo:0
[root@web1 ~]# yum -y install httpd #安裝http服務(wù)
[root@Web1 ~]# echo 22222222222 > /var/www/html/index.html #準(zhǔn)備測試網(wǎng)頁文件
[root@Web1 ~]# systemctl start httpd #啟動(dòng)http服務(wù)
[root@Web1 ~]# systemctl enable httpd #設(shè)置開機(jī)自啟動(dòng)
至此,web2也配置完成了,現(xiàn)在使用客戶端,以便測試群集是否生效:
5、客戶端訪問測試:
若訪問到的是同一頁面,在排除配置上錯(cuò)誤的情況下,可以打開多個(gè)網(wǎng)頁,或者稍等一會(huì)再刷新,因?yàn)樗赡苡幸粋€(gè)保持連接的時(shí)間,所以會(huì)存在延遲。
為了測試,所以才在每個(gè)web節(jié)點(diǎn)準(zhǔn)備不同的網(wǎng)頁文件,以便測試是否有負(fù)載均衡的效果,現(xiàn)在效果已經(jīng)有了,所以要搭建共享存儲(chǔ)服務(wù)器,所有的web節(jié)點(diǎn)都從共享存儲(chǔ)服務(wù)器讀取網(wǎng)頁文件向client提供,以便向client提供相同的網(wǎng)頁文件。
下面是搭建了一個(gè)簡易的共享存儲(chǔ)服務(wù)器,若需要搭建高可用的存儲(chǔ)服務(wù)器,可以關(guān)注我的博客:warrent,我將在以后的博文寫出如何去搭建一個(gè)高可用的存儲(chǔ)服務(wù)器。
6、配置NFS共享存儲(chǔ)服務(wù)器:
[root@NFS /]# yum -y install nfs-utils rpcbind #安裝相關(guān)軟件包
[root@NFS /]# systemctl enable nfs #設(shè)置為開機(jī)自啟動(dòng)
[root@NFS /]# systemctl enable rpcbind #設(shè)置為開機(jī)自啟動(dòng)
[root@NFS /]# mkdir -p /opt/wwwroot #準(zhǔn)備共享目錄
[root@NFS /]# echo www.baidu.com > /opt/wwwroot/index.html #新建網(wǎng)頁文件
[root@NFS /]# vim /etc/exports #設(shè)置共享目錄(該文件內(nèi)容默認(rèn)為空)
/opt/wwwroot 192.168.1.0/24(rw,sync,no_root_squash) #寫入該行
[root@NFS /]# systemctl restart rpcbind #重啟相關(guān)服務(wù),需注意服務(wù)啟動(dòng)的先后順序
[root@NFS /]# systemctl restart nfs
[root@NFS /]# showmount -e #查看本機(jī)共享的目錄
Export list for NFS:
/opt/wwwroot 192.168.2.0
7、所有web節(jié)點(diǎn)掛載共享存儲(chǔ)服務(wù)器:
1)Web1節(jié)點(diǎn)服務(wù)器配置:
[root@Web1 ~]# showmount -e 192.168.1.5 #查看存儲(chǔ)服務(wù)器共享的目錄
Export list for 192.168.1.5:
/opt/wwwroot 192.168.1.0/24
[root@Web1 ~]# mount 192.168.1.5:/opt/wwwroot /var/www/html/ #掛載至網(wǎng)頁根目錄
[root@Web1 ~]# df -hT /var/www/html/ #確認(rèn)掛載成功
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點(diǎn)
192.168.1.5:/opt/wwwroot nfs4 39G 5.5G 33G 15% /var/www/html
[root@Web1 ~]# vim /etc/fstab #設(shè)置自動(dòng)掛載
.........................
192.168.1.5:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
#寫入上面內(nèi)容
2)Web2節(jié)點(diǎn)服務(wù)器配置:
[root@Web2 ~]# showmount -e 192.168.1.5 #查看存儲(chǔ)服務(wù)器共享的目錄
Export list for 192.168.1.5:
/opt/wwwroot 192.168.1.0/24
[root@Web2 ~]# mount 192.168.1.5:/opt/wwwroot /var/www/html/ #掛載至網(wǎng)頁根目錄
[root@Web2 ~]# df -hT /var/www/html/ #確認(rèn)掛載成功
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點(diǎn)
192.168.1.5:/opt/wwwroot nfs4 39G 5.5G 33G 15% /var/www/html
[root@Web2 ~]# vim /etc/fstab #設(shè)置自動(dòng)掛載
.........................
192.168.1.5:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
#寫入上面內(nèi)容
8、客戶端再次訪問測試:
這次,客戶端無論怎么刷新,都將看到相同的網(wǎng)頁,如下:
9、更改所有主/從調(diào)度器上的keepalived配置文件,以便適用于生產(chǎn)環(huán)境:
1)主調(diào)度器:
[root@LVS1 ~]# vim /etc/keepalived/keepalived.conf
................. #省略部分內(nèi)容
virtual_server 200.0.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50 #將之前添加的感嘆號(hào)“ !”刪除。
protocol TCP
................. #省略部分內(nèi)容
}
[root@LVS1 ~]# systemctl restart keepalived #重啟服務(wù),使更改生效
2)從調(diào)度器:
[root@LVS1 ~]# vim /etc/keepalived/keepalived.conf
................. #省略部分內(nèi)容
virtual_server 200.0.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50 #將之前添加的感嘆號(hào)“ !”刪除。
protocol TCP
................. #省略部分內(nèi)容
}
[root@LVS2 ~]# systemctl restart keepalived #重啟服務(wù),使更改生效
10、附上一些查看命令:
1)VIP在哪個(gè)調(diào)度器上,查詢?cè)撜{(diào)度器承載VIP地址的物理接口,即可看到VIP地址(VIP地址在備份調(diào)度器上查不到的):
[root@LVS1 ~]# ip a show dev ens33 #查詢承載VIP地址的物理網(wǎng)卡ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> ate UP groupn 1000
link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
inet 200.0.0.1/24 brd 200.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 200.0.0.100/32 scope global ens33 #VIP地址。
valid_lft forever preferred_lft forever
inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2)查詢有哪些web節(jié)點(diǎn):
[root@LVS1 ~]# ipvsadm -ln #查詢web節(jié)點(diǎn)池及VIP
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.0.0.100:80 rr
200.0.0.3:80 Route 1 0 0
200.0.0.4:80 Route 1 0 0
3)模擬Web2節(jié)點(diǎn)和主調(diào)度器宕機(jī),并在備份調(diào)度器上再次查詢VIP以及web節(jié)點(diǎn):
[root@LVS2 ~]# ip a show dev ens33 #可以看到VIP地址已經(jīng)轉(zhuǎn)移到了備份調(diào)度器上
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP>
link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
inet 200.0.0.2/24 brd 200.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 200.0.0.100/32 scope global ens33 #VIP地址。
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@LVS2 ~]# ipvsadm -ln #Web2節(jié)點(diǎn)宕機(jī)后,就查不到了。
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.0.0.100:80 rr
-> 200.0.0.3:80 Route 1 0 0
#當(dāng)主調(diào)度器或Web2節(jié)點(diǎn)恢復(fù)正常后,將會(huì)自動(dòng)添加到群集中,并且正常運(yùn)行。
4)查看調(diào)度器故障切換時(shí)的日志消息:
[root@LVS2 ~]# tail -30 /var/log/messages
齊活.....................
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站名稱:搭建:LVS+Keepalived高可用Web服務(wù)群集環(huán)境-創(chuàng)新互聯(lián)
文章來源:http://www.rwnh.cn/article30/ccjdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、域名注冊(cè)、定制網(wǎng)站、小程序開發(fā)、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容