国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx+Tomcat實現(xiàn)負(fù)載均衡、動靜分離

這篇具有很好參考價值的文章主要介紹了Nginx+Tomcat實現(xiàn)負(fù)載均衡、動靜分離。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、Nginx負(fù)載均衡實現(xiàn)原理

1.Nginx 實現(xiàn)負(fù)載均衡是通過反向代理實現(xiàn)

?2、Nginx配置反向代理主要參數(shù)

3、動靜分離原理

?4、Nginx靜態(tài)處理優(yōu)勢

5、并發(fā)量和吞吐量計算

二:7層反向代理

? ? ? ? ?1、環(huán)境準(zhǔn)備

?2、配置Nginx Server

3、tomcat1 和tomcat2配置

4、?搭建tomcat3

5、設(shè)置tomcat1

6、設(shè)置tomcat2

?7、Nginx進(jìn)行負(fù)載均衡和動靜分離設(shè)置?

?8、進(jìn)行負(fù)載均衡和動靜分離配置

9、測試效果?

三: 四層代理配置

四:Nginx 負(fù)載均衡模式

1、rr 輪詢 負(fù)載均衡模式:

2、least_conn 最少連接:

3、ip_hash 負(fù)載均衡模式:

4、fair(第三方)負(fù)載均衡模式:

5、url_hash(第三方)負(fù)載均衡模式:


一、Nginx負(fù)載均衡實現(xiàn)原理

1.Nginx 實現(xiàn)負(fù)載均衡是通過反向代理實現(xiàn)

Nginx服務(wù)器作為前端,Tomcat服務(wù)器作為后端,web頁面請求由Nginx服務(wù)來進(jìn)行轉(zhuǎn)發(fā)。但是不是把所有的web請求轉(zhuǎn)發(fā),而是將靜態(tài)頁面請求Nginx服務(wù)器自己來處理,動態(tài)頁面請求,轉(zhuǎn)發(fā)給后端的Tomcat服務(wù)器來處理。

反向代理(Reverse Proxy)是指以代理服務(wù)器(例:Nginx) 來接受 internet 上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器(例:Tomcat),并將從服務(wù)器上得到的結(jié)果返回給 internet 上請求連接的客戶端,此時代理服務(wù)器(例:Nginx)對外就表現(xiàn)為一個反向代理服務(wù)器。
我們從客戶端的視野來看,實際上客戶端并不知道真實的服務(wù)提供者是哪臺服務(wù)器,它只知道它請求了反向代理服務(wù)器。因此反向代理這種方式又對外隱藏了真實服務(wù)器的地址,從一定程度上降低了安全隱患。
nginx+tomcat,nginx,tomcat,負(fù)載均衡

?2、Nginx配置反向代理主要參數(shù)

配置后端服務(wù)器池,以提供響應(yīng)數(shù)據(jù)

upstream 服務(wù)器名 {}

配置將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池名

proxy_pass http://服務(wù)器名

3、動靜分離原理

服務(wù)端接收來自客戶端的請求中,既有靜態(tài)資源也有動態(tài)資源,靜態(tài)資源由Nginx提供服務(wù),動態(tài)資源Nginx轉(zhuǎn)發(fā)至后端

nginx+tomcat,nginx,tomcat,負(fù)載均衡

?4、Nginx靜態(tài)處理優(yōu)勢

  • Nginx處理靜態(tài)頁面的效率遠(yuǎn)高于Tomcat的處理能力
  • 若Tomcat的請求量為1000次,則Nginx的請求量為6000次
  • Tomcat每秒的吞吐量為0.6M,Nginx的每秒吞吐量為3 .6M
  • Nginx處理靜態(tài)資源的能力是Tomcat處理的6倍

5、并發(fā)量和吞吐量計算

并發(fā)量:以10分鐘有5000萬用戶平均每人訪問2次為例,并發(fā)量為每秒(5000w2)/(6010)=16.7萬,再double下,就說每秒25萬并發(fā)量

吞吐量可以理解成帶寬流量,以每個請求0.5KB大小,并發(fā)每秒25萬,0.5/1024MB250000=122MB8bit=977Mbps

二:7層反向代理

1、環(huán)境準(zhǔn)備

主機(jī) 操作系統(tǒng) IP地址 所需軟件
Nginx Server CentOS7 192.168.231.101 nginx-1.12.0.tar.gz
Tomcat Server1 CentOS7 192.168.231.100:8080 apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm
Tomcat Server2 CentOS7 192.168.231.100:8081 apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm
Tomcat Server3 CentOS7 192.168.231.102:8080 apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm

實驗邏輯圖:?

2、配置Nginx Server

systemctl stop firewalld
setenforce 0

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

useradd -M -s /sbin/nologin nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#啟用文件修改支持
--with-http_stub_status_module \					#啟用狀態(tài)統(tǒng)計
--with-http_gzip_static_module \					#啟用 gzip靜態(tài)壓縮
--with-http_flv_module \							#啟用 flv模塊,提供對 flv 視頻的偽流支持
--with-http_ssl_module								#啟用 SSL模塊,提供SSL加密功能
--with-stream										#啟用 stream模塊,提供4層調(diào)度
----------------------------------------------------------------------------------------------------------
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

nginx+tomcat,nginx,tomcat,負(fù)載均衡

nginx+tomcat,nginx,tomcat,負(fù)載均衡

3、tomcat1 和tomcat2配置

nginx+tomcat,nginx,tomcat,負(fù)載均衡

4、?搭建tomcat3

systemctl stop firewalld
setenforce 0
 
 
#軟件包的方式安裝jdk環(huán)境
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
 
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
 
source /etc/profile
 
tar zxvf apache-tomcat-8.5.16.tar.gz
 
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
 
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh
 
netstat -ntap | grep 8080

nginx+tomcat,nginx,tomcat,負(fù)載均衡

5、設(shè)置tomcat1

 
mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test
 
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>   #指定為 test2 頁面
</head>
<body>
<% out.println("動態(tài)頁面 1,http://www.test1.com");%>
</body>
</html>
 
 
vim /usr/local/tomcat/tomcat1/conf/server.xml
#刪除前面的 HOST 配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/tomcat1/webapps/test" path="" reloadable="true" />
</Host>
 
/usr/local/tomcat/tomcat1/bin/shutdown.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 
 
 

nginx+tomcat,nginx,tomcat,負(fù)載均衡

?????nginx+tomcat,nginx,tomcat,負(fù)載均衡

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

6、設(shè)置tomcat2

vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2  page</title>  
</head>
<body>
<% out.println("動態(tài)頁面 2,http://www.test2.com");%>
</body>
</html>
 
 
vim /usr/local/tomcat/tomcat2/conf/server.xml
#刪除前面的 HOST 配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/tomcat2/webapps/test" path="" reloadable="true" />
</Host>
 
/usr/local/tomcat/tomcat2/bin/shutdown.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 

nginx+tomcat,nginx,tomcat,負(fù)載均衡

nginx+tomcat,nginx,tomcat,負(fù)載均衡?nginx+tomcat,nginx,tomcat,負(fù)載均衡

?7、Nginx進(jìn)行負(fù)載均衡和動靜分離設(shè)置?

vim /usr/local/nginx/html/index.html
<html>
<body>
<h1> this is Nginx static test !</h2>
<img src="game.jpg"/>
</body>
</html>

nginx+tomcat,nginx,tomcat,負(fù)載均衡

?8、進(jìn)行負(fù)載均衡和動靜分離配置

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
	#gzip on;
	
	#配置負(fù)載均衡的服務(wù)器列表,weight參數(shù)表示權(quán)重,權(quán)重越高,被分配到的概率越大
	upstream tomcat_server {
		server 192.168.231.100:8080 weight=1;
		server 192.168.231.100:8081 weight=1;
		server 192.168.231.102:8080 weight=1;
	}
	
	server {
		listen 80;
		server_name localhost;
	
		charset utf-8;
	
		#access_log logs/host.access.log main;
		
		#配置Nginx處理動態(tài)頁面請求,將 .jsp文件請求轉(zhuǎn)發(fā)到Tomcat 服務(wù)器處理
		location ~ .*\.jsp$ {
			proxy_pass http://tomcat_server;
#設(shè)置后端的Web服務(wù)器可以獲取遠(yuǎn)程客戶端的真實IP
##設(shè)定后端的Web服務(wù)器接收到的請求訪問的主機(jī)名(域名或IP、端口),默認(rèn)HOST的值為proxy_pass指令設(shè)置的主機(jī)名。如果反向代理服務(wù)器不重寫該請求頭的話,那么后端真實服務(wù)器在處理時會認(rèn)為所有的請求都來自反向代理服務(wù)器,如果后端有防攻擊策略的話,那么機(jī)器就被封掉了。
			proxy_set_header HOST $host;
##把$remote_addr賦值給X-Real-IP,來獲取源IP
			proxy_set_header X-Real-IP $remote_addr;
##在nginx 作為代理服務(wù)器時,設(shè)置的IP列表,會把經(jīng)過的機(jī)器ip,代理機(jī)器ip都記錄下來
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		
		#配置Nginx處理靜態(tài)圖片請求
		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
			root /usr/local/nginx/html;
			expires 10d;
		}
		
		location / {
			root html;
			index index.html index.htm;
		}
......
	}
......
}

????????nginx+tomcat,nginx,tomcat,負(fù)載均衡

9、測試效果?

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

三: 四層代理配置

  • Nginx 負(fù)載均衡服務(wù)器: 192.168.137.101
  • 兩臺Nginx 服務(wù)器七層代理服務(wù)器 192.168.137.102;192.168.137.103
  • 一臺tomcat服務(wù)器 : 192.168.137.10

兩臺服務(wù)器七層代理操作同上,tomcat操作也同上

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

?所有的Nginx服務(wù)器配置文件長連接超時設(shè)置為0關(guān)閉

配置Nginx負(fù)載均衡服務(wù)器

./configure --with-stream

和http同等級:所以一般只在http上面一段設(shè)置,
stream {
	
    upstream appserver {
		server 192.168.80.100:8080 weight=1;
		server 192.168.80.101:8080 weight=1;
		server 192.168.80.101:8081 weight=1;
    }
    server {
        listen 8080;
        proxy_pass appserver;
    }
}

http {
......

nginx+tomcat,nginx,tomcat,負(fù)載均衡

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

?瀏覽器訪問Nginx負(fù)載均衡服務(wù)器

nginx+tomcat,nginx,tomcat,負(fù)載均衡

?nginx+tomcat,nginx,tomcat,負(fù)載均衡

四:Nginx 負(fù)載均衡模式

1、rr 輪詢 負(fù)載均衡模式:

每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果超過了最大失敗次數(shù)后(max_fails,默認(rèn)1),在失效時間內(nèi)(fail_timeout,默認(rèn)10秒),該節(jié)點(diǎn)失效權(quán)重變?yōu)?,超過失效時間后,則恢復(fù)正常,或者全部節(jié)點(diǎn)都為down后,那么將所有節(jié)點(diǎn)都恢復(fù)為有效繼續(xù)探測,一般來說rr可以根據(jù)權(quán)重來進(jìn)行均勻分配。

2、least_conn 最少連接:

優(yōu)先將客戶端請求調(diào)度到當(dāng)前連接最少的服務(wù)器。

3、ip_hash 負(fù)載均衡模式:

每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題,但是ip_hash會造成負(fù)載不均,有的服務(wù)請求接受多,有的服務(wù)請求接受少,所以不建議采用ip_hash模式,session 共享問題可用后端服務(wù)的 session 共享代替 nginx 的 ip_hash(使用后端服務(wù)器自身通過相關(guān)機(jī)制保持session同步)。

4、fair(第三方)負(fù)載均衡模式:

按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。

5、url_hash(第三方)負(fù)載均衡模式:

基于用戶請求的uri做hash。和ip_hash算法類似,是對每個請求按url的hash結(jié)果分配,使每個URL定向到同一個后端服務(wù)器,但是也會造成分配不均的問題,這種模式后端服務(wù)器為緩存時比較好。

nginx+tomcat,nginx,tomcat,負(fù)載均衡?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-751676.html

到了這里,關(guān)于Nginx+Tomcat實現(xiàn)負(fù)載均衡、動靜分離的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Web服務(wù)器群集:Nginx+Tomcat實現(xiàn)負(fù)載均衡與動靜分離集群

    Web服務(wù)器群集:Nginx+Tomcat實現(xiàn)負(fù)載均衡與動靜分離集群

    目錄 一、理論 1.多實例 2.Nginx負(fù)載均衡 3.Nginx動靜分離 4.配置Nginx+Tomcat負(fù)載均衡 5.配置Nginx+Tomcat動靜分離集群 6.Nginx 四層代理配置 二、實驗 1.配置Nginx+Tomcat負(fù)載均衡 2.、配置Nginx+Tomcat動靜分離集群 三、問題 1.服務(wù)器群集與集群的區(qū)別 2.正向代理與反向代理的區(qū)別 四、總結(jié) (

    2024年02月11日
    瀏覽(23)
  • Nginx+Tomcat負(fù)載均衡、動靜分離群集

    Nginx+Tomcat負(fù)載均衡、動靜分離群集

    Nginx是一款非常優(yōu)秀的HTTP服務(wù)器軟件,支持高達(dá)50000個并發(fā)連接數(shù)的響應(yīng)、擁有強(qiáng)大的靜態(tài)資源處理能力、運(yùn)行穩(wěn)定、內(nèi)存和CPU等系統(tǒng)資源消耗非常低 目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器作為后端網(wǎng)站程序的反向代理及負(fù)載均衡器,提升整個站點(diǎn)的負(fù)載并發(fā)能力 Nginx實現(xiàn)負(fù)載

    2024年02月09日
    瀏覽(17)
  • Tomcat多實例 + Tomcat負(fù)載均衡、動靜分離(Nginx聯(lián)動)

    Tomcat多實例 + Tomcat負(fù)載均衡、動靜分離(Nginx聯(lián)動)

    Tomcat 多實例是指在同一臺服務(wù)器上 運(yùn)行多個獨(dú)立的 Tomcat 實例 。 每個 Tomcat 實例都具有獨(dú)立的配置文件、日志文件、應(yīng)用程序和端口。 通過配置不同的端口和文件目錄,可以實現(xiàn)同時運(yùn)行多個獨(dú)立的 Tomcat 服務(wù)器,每個服務(wù)器都可以獨(dú)立處理用戶的請求。 這樣可以提高服務(wù)

    2024年02月09日
    瀏覽(13)
  • tomcat的負(fù)載均衡、動靜分離(nginx聯(lián)動)

    tomcat的負(fù)載均衡、動靜分離(nginx聯(lián)動)

    動靜分離: 訪問靜態(tài)頁面和動態(tài)頁面分開 實現(xiàn)動態(tài)和靜態(tài)頁面負(fù)載均衡 實驗5臺虛擬機(jī) 一、動態(tài)負(fù)載均衡 3臺虛擬機(jī)模擬: 代理服務(wù)器:30 tomcat動態(tài)頁面:21、22 代理服務(wù)器: ??proxy_pass http://tomcat; ????????proxy_set_header HOST $host; ????????proxy_set_header X-Real-IP $remote_a

    2024年02月08日
    瀏覽(21)
  • Nginx+Tomcat負(fù)載均衡、動靜分離實例詳細(xì)部署

    Nginx+Tomcat負(fù)載均衡、動靜分離實例詳細(xì)部署

    ●rr 輪詢 負(fù)載均衡模式: 每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果超過了最大失敗次數(shù)后(max_fails,默認(rèn)1),在失效時間內(nèi)(fail_timeout,默認(rèn)10秒),該節(jié)點(diǎn)失效權(quán)重變?yōu)?,超過失效時間后,則恢復(fù)正常,或者全部節(jié)點(diǎn)都為down后,那么將所有節(jié)點(diǎn)都恢復(fù)為有效

    2024年02月13日
    瀏覽(26)
  • 3.Nginx+Tomcat負(fù)載均衡和動靜分離群集

    Nginx是-款非常優(yōu)秀的HTTP服務(wù)器軟件 支持高達(dá)50 000個并發(fā)連接數(shù)的響應(yīng) 擁有強(qiáng)大的靜態(tài)資源處理能力 運(yùn)行穩(wěn)定 內(nèi)存、CPU等系統(tǒng)資源消耗非常低 目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器作為后端網(wǎng)站程序的反向代理及負(fù)載均衡器,提升整個站點(diǎn)的負(fù)載并發(fā)能力 正向代理:代理的是

    2024年02月08日
    瀏覽(21)
  • Nginx+Tomcat負(fù)載均衡(反向代理)、動靜分離集群

    Nginx+Tomcat負(fù)載均衡(反向代理)、動靜分離集群

    Nginx:正向代理(知道目標(biāo)服務(wù)器) 反向代理(不知道目標(biāo)服務(wù)器) Nginx配置反向代理主要參數(shù) upstream服務(wù)池名{}(F5(硬件)和nginx反向代理原理一樣) 配置后端服務(wù)池,以提供響應(yīng)數(shù)據(jù) proxy_pass http://服務(wù)池名 配置將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器處理 定義:將工作任務(wù)

    2024年02月13日
    瀏覽(18)
  • Nginx&&Tomcat架構(gòu)的動靜分離和負(fù)載均衡

    Nginx&&Tomcat架構(gòu)的動靜分離和負(fù)載均衡

    目錄 一、Tomcat的多實例部署 1.創(chuàng)建 kgc 和 benet 項目目錄和文件 2.修改 Tomcat 主配置文件? ? ?3.客戶端瀏覽器訪問驗證 二、Nginx+Tomcat負(fù)載均衡架構(gòu)原理 2.1 Nginx負(fù)載均衡的主要配置 2.2?Nginx+Tomcat負(fù)載均衡的優(yōu)點(diǎn)? 三、Nginx+Tomcat負(fù)載均衡實驗 1.部署Nginx 負(fù)載均衡器 2.部署2臺Tomca

    2024年02月12日
    瀏覽(21)
  • 多實例部署和Nginx+Tomcat負(fù)載均衡、動靜分離

    多實例部署和Nginx+Tomcat負(fù)載均衡、動靜分離

    目錄 一、Tomcat多實例部署 1.安裝好 jdk ?2.安裝 tomcat ?3.配置 tomcat環(huán)境變量 ?4.修改 tomcat2 中的 server.xml文件,要求各 tomcat 實例配置不能有重復(fù)的端口號 5.修改各 tomcat 實例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 環(huán)境變量 ?6.啟動各 tomcat 中的 /bin/startup.sh ?7.瀏覽器訪問測

    2024年02月12日
    瀏覽(14)
  • Tomcat多實例部署及nginx+tomcat的負(fù)載均衡和動靜分離

    Tomcat多實例部署及nginx+tomcat的負(fù)載均衡和動靜分離

    靜:靜態(tài)頁面? ?動: 動態(tài)頁面 分別可以對靜態(tài)頁面和動態(tài)頁面發(fā)起不同的請求,會有不同的響應(yīng)結(jié)果。 ngix反向代理——負(fù)均均衡——tomcat為后端服務(wù)器——web靜態(tài)nginx——靜態(tài)請求nginx——動態(tài)頁面——tomcat Nginx實現(xiàn)負(fù)載均衡的原理 Nginx實現(xiàn)負(fù)載均衡是通過反向代理實現(xiàn)Ngi

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包