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

全國咨詢/投訴熱線:400-618-4000

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

更新時間:2020年04月04日16時31分 來源:傳智播客 瀏覽次數(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é)議級過濾到十分復(fù)雜的應(yīng)用級過濾等。推薦了解傳智播客linux云計算+運維開發(fā)課程。

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

2、apisix介紹

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

它是基于 OpenResty 和 etcd來實現(xiàn),和傳統(tǒng) API 網(wǎng)關(guān)相比,APISIX 具備動態(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 來使用。

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

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

二、安裝部署

1、安裝apisix服務(wù)

①提前解決依賴問題

# 安裝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 和一些依賴工具
yum install -y etcd openresty curl git gcc luarocks lua-devel
# 啟動 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

③啟動apisix

apisix start

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

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

netstat -lntp|grep 9080

2、安裝控制臺Dashbord頁面

此控制臺頁面基于VUE開發(fā),需要通過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
#測試環(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
#測試環(huán)境
yarn --version

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

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

④通過瀏覽器進行訪問

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

三、案例測試使用

1、反向代理測試

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

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

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

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

APISIX
APISIX3
APISIX4

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


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

APISIX5

APISIX5.5


④測試查看

APISIX6

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

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

這里簡單測試一下負(fù)載均衡輪詢的效果。故然另外安裝一個httpd監(jiān)聽不同端口進行測試。

①安裝一個httpd

yum install httpd

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

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

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

APISIX7

添加測試頁面

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

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

systemctl start httpd

systemctl status httpd

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

APISIX8

APISIX9


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

APISIX10

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


猜你喜歡:

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

0 分享到:
和我們在線交談!