教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

API服務(wù)網(wǎng)關(guān)實(shí)現(xiàn)之APISIX安裝和部署

更新時(shí)間:2020年04月04日16時(shí)31分 來(lái)源:傳智播客 瀏覽次數(shù):

一、APISIX相關(guān)介紹

1、安全網(wǎng)關(guān)

安全網(wǎng)關(guān)設(shè)置的目的是防止Internet或外網(wǎng)不安全因素蔓延到自己企業(yè)或組織的內(nèi)部網(wǎng) 。

安全網(wǎng)關(guān)在應(yīng)用層和網(wǎng)絡(luò)層上面都有防火墻的身影。

其范圍從協(xié)議級(jí)過(guò)濾到十分復(fù)雜的應(yīng)用級(jí)過(guò)濾等。推薦了解傳智播客linux云計(jì)算+運(yùn)維開(kāi)發(fā)課程。

API網(wǎng)關(guān):整個(gè)流量總?cè)肟?,能夠進(jìn)行集中管理和控制!

2、apisix介紹

APISIX 是一個(gè)云原生、高性能、可擴(kuò)展的微服務(wù) API 網(wǎng)關(guān)。

它是基于 OpenResty 和 etcd來(lái)實(shí)現(xiàn),和傳統(tǒng) API 網(wǎng)關(guān)相比,APISIX 具備動(dòng)態(tài)路由和插件熱加載,特別適合微服務(wù)體系下的 API 管理。

APISIX 是基于云原生的微服務(wù) API 網(wǎng)關(guān),它是所有業(yè)務(wù)流量的入口,可以處理傳統(tǒng)的南北向流量(server-client),也可以處理服務(wù)間的東西向流量(server-server),也可以當(dāng)做 k8s ingress controller 來(lái)使用。

Tip:流量流向方向
在圖表中,通常核心網(wǎng)絡(luò)組件繪制在頂部(NORTH),客戶(hù)端繪制在底部(SOUTH),而數(shù)據(jù)中心內(nèi)的不同服務(wù)器水平(EAST-WEST)繪制。

APISIX 通過(guò)插件機(jī)制,提供動(dòng)態(tài)負(fù)載平衡、身份驗(yàn)證、限流限速等功能,并且支持你自己開(kāi)發(fā)的插件。

二、安裝部署

1、安裝apisix服務(wù)

①提前解決依賴(lài)問(wèn)題

# 安裝epel源, luarocks 需要使用到.

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
# 添加OpenResty 的鏡像源
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
# 安裝 OpenResty, etcd 和一些依賴(lài)工具
yum install -y etcd openresty curl git gcc luarocks lua-devel
# 啟動(dòng) etcd 服務(wù)端
systemctl start etcd
# 防火墻關(guān)閉
systemctl stop firewalld.service
systemctl disable firewalld.service
# 關(guān)閉selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

②安裝apisix

yum install -y https://github.com/apache/incubator-apisix/releases/download/1.1/apisix-1.1-0.el7.noarch.rpm

③啟動(dòng)apisix

apisix start

④查看服務(wù)是否啟動(dòng)

查看進(jìn)程或者監(jiān)聽(tīng)端口9080
ps aux|grep apisix

netstat -lntp|grep 9080

2、安裝控制臺(tái)Dashbord頁(yè)面

此控制臺(tái)頁(yè)面基于VUE開(kāi)發(fā),需要通過(guò)yarn編譯生成。

需要基礎(chǔ)編譯環(huán)境:node npm yarn

①安裝node和npm

wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
#解壓部署  
tar xvf node-v12.16.1-linux-x64.tar.xz
mv node-v12.16.1-linux-x64 /usr/local/node
#配置環(huán)境變量
echo 'PATH=/usr/local/node/bin/:$PATH' >> /etc/profile
source /etc/profile
#測(cè)試環(huán)境
node --version
npm --version

②安裝yarn

wget https://github.com/yarnpkg/yarn/releases/download/v1.22.4/yarn-v1.22.4.tar.gz
#解壓部署
tar xvf yarn-v1.22.4.tar.gz
mv yarn-v1.22.4 /usr/local/yarn
#配置環(huán)境變量
echo 'PATH=/usr/local/yarn/bin/:$PATH' >> /etc/profile
source /etc/profile
#測(cè)試環(huán)境
yarn --version

③編譯dashboard組件,生成靜態(tài)頁(yè)面

# git獲取源碼
git clone https://github.com/apache/incubator-apisix-dashboard.git
cd incubator-apisix-dashboard
#切換分支版本  和apisix版本一致即可
git checkout 1.0
#下載解決依賴(lài)包
yarn
#構(gòu)建生成頁(yè)面
yarn build:prod
#復(fù)制到訪(fǎng)問(wèn)路徑
mkdir -p /usr/local/apisix/dashboard
cp -r ./* /usr/local/apisix/dashboard

④通過(guò)瀏覽器進(jìn)行訪(fǎng)問(wèn)

 http://ip:9080/apisix/dashboard/

三、案例測(cè)試使用

1、反向代理測(cè)試

①啟動(dòng)一個(gè)正常的web服務(wù)器
也可以使用已經(jīng)安裝的openresty

#啟動(dòng)web服務(wù)器  默認(rèn)80端口
/usr/local/openresty/bin/opennresty
#檢測(cè)服務(wù)是否開(kāi)啟  80端口
netstat -lntp |grep 80

②配置指向后端服務(wù)

到這里還暫時(shí)不能使用。需要配置具體路由信息進(jìn)行轉(zhuǎn)發(fā)測(cè)試

APISIX
APISIX3
APISIX4

到這里還暫時(shí)不能使用。需要配置具體路由信息進(jìn)行轉(zhuǎn)發(fā)測(cè)試。


③配置路由規(guī)則信息

APISIX5

APISIX5.5


④測(cè)試查看

APISIX6

通過(guò)上圖,可以查看到已經(jīng)轉(zhuǎn)發(fā)成功。也就是說(shuō)明反向代理設(shè)置成功。

2、負(fù)載均衡測(cè)試

這里簡(jiǎn)單測(cè)試一下負(fù)載均衡輪詢(xún)的效果。故然另外安裝一個(gè)httpd監(jiān)聽(tīng)不同端口進(jìn)行測(cè)試。

①安裝一個(gè)httpd

yum install httpd

②修改httpd默認(rèn)端口,添加測(cè)試頁(yè)面

默認(rèn)httpd監(jiān)聽(tīng)端口80,上面案例中已經(jīng)啟動(dòng)openresty在80端口,故這里將httpd修改為8080。

vim +42 /etc/httpd/conf/httpd.conf

APISIX7

添加測(cè)試頁(yè)面

echo this is httpd page >> /var/www/html/index.html

③啟動(dòng)并查看httpd服務(wù)

systemctl start httpd

systemctl status httpd

④在upstream中添加后端節(jié)點(diǎn)

APISIX8

APISIX9


⑤測(cè)試查看負(fù)載均衡轉(zhuǎn)發(fā)效果

APISIX10

以上案例可以看到路由已經(jīng)轉(zhuǎn)發(fā),并且負(fù)載均衡到這里實(shí)現(xiàn)的兩個(gè)節(jié)點(diǎn)。


猜你喜歡:

Linux運(yùn)維的發(fā)展歷史和和行業(yè)前景介紹

0 分享到:
和我們?cè)诰€(xiàn)交談!