服務(wù)器
什么是rap2
先來(lái)說(shuō)說(shuō)起因,在上一個(gè)星期的分享會(huì )上,談到前后端聯(lián)調上,有同事提到了rap2
,特意去了解了一下,覺(jué)得使用這個(gè)東西來(lái)進(jìn)行前后端的接口聯(lián)調來(lái)真是太方便了,對比我們之前公司內部開(kāi)發(fā)的API Cloud
來(lái)說(shuō),我更偏向使用rap2
。
RAP通過(guò)GUI工具幫助WEB工程師更高效的管理接口文檔,同時(shí)通過(guò)分析接口結構自動(dòng)生成Mock數據、校驗真實(shí)接口的正確性,使接口文檔成為開(kāi)發(fā)流程中的強依賴(lài)。有了結構化的API數據,RAP可以做的更多,而我們可以避免更多重復勞動(dòng)。
上面是摘自http://wap.friendlycc.com.cn/host/
使用rap2
可以直接使用淘寶提供的在線(xiàn)服務(wù)來(lái)生成在線(xiàn)的接口地址,通過(guò)申請一個(gè)賬號后,即可在里面進(jìn)行接口的編寫(xiě)、測試等等…這里不再贅述。
部署自己的rap2服務(wù)
因為rap2在github上面已經(jīng)開(kāi)源,而且也提供了部署方案,這里講一下自己是如何使用docker
來(lái)進(jìn)行部署的。
前提
安裝docker
安裝docker-compose
涉及到的兩個(gè)開(kāi)源倉庫:
rap2-delos: 后端數據API服務(wù)器,基于Koa mysql 戳這里
rap2-dolores: 前端靜態(tài)資源,基于React 戳這里
或者使用本人的github倉庫 Rynxiao/rap2-docker,已經(jīng)包含了這兩個(gè)倉庫,并加入了配置。
后端部署
在后端部署方面,在github
上已經(jīng)給出了使用docker
的部署方面,因此,just follow就好。
> mkdir rap2 > cd rap2 > git clone http://wap.friendlycc.com.cn/host/ > cd rap2-delos > docker-compose up -d
運行成功后,需要手動(dòng)初始化數據庫,我們進(jìn)入對象的容器來(lái)操作:
> docker exec -it rap2-delos sh > node scripts/init > exit
重新啟動(dòng)服務(wù):
> docker-compose down > docker-compose up -d
可以看到暴露出來(lái)的端口是38080
,我們使用curl
命令來(lái)測試一下是否成功,如果放回Hello RAP!
,就說(shuō)明后端已經(jīng)部署好了。
> curl localhost:38080
前端部署
前端由于沒(méi)有提供對應的docker
部署方法,因此只有我自己來(lái)嘗試部署了。前端使用的是node進(jìn)行webpack打包,因此需要一個(gè)node的環(huán)境,所以我在制作容器的時(shí)候需要拉去一個(gè)node鏡像。
因為部署前端之前沒(méi)有看后端的部署,所以我前端拉取了一個(gè)比較新的版本[10.1.0],如果想和后端公用一個(gè)node鏡像,可以使用這個(gè)node:8.11.1-alpine
鏡像。
通過(guò)npm run build
之后,生成的build
文件夾中的只是靜態(tài)資源文件,因此我還需要起一個(gè)服務(wù)器,這里我通過(guò)全局安裝http-server
來(lái)啟動(dòng)一個(gè)服務(wù)。
下面是具體的過(guò)程:
1. git倉庫拉取
> cd rap2 > git clone http://wap.friendlycc.com.cn/host/ > cd rap2-dolores
2. 創(chuàng )建一個(gè)Dockerfile來(lái)構建一個(gè)新的node版本鏡像
> touch Dockerfile > vim Dockerfile
Dockerfile中的內容為:
# 拉取10.1.0版本的node鏡像 FROM node:10.1.0 # 維護人 MAINTAINER ryn # 創(chuàng )建工作目錄 RUN mkdir -p /home/rap2-dolores WORKDIR /home/rap2-dolores # 將代碼拷貝至工作目錄 COPY . /home/rap2-dolores # 全局安裝http-server服務(wù)器 RUN npm install -g http-server # 全局安裝node-sass(一定要帶--unsafe-perm,否則會(huì )報錯) RUN npm install --unsafe-perm -g node-sass # 安裝依賴(lài) RUN npm install # 打包 RUN npm run build
3. 使用docker-compose來(lái)啟動(dòng)服務(wù)
> touch docker-compose.yml > vim docker-compose.yml
docker-compose.yml中的內容為:
version: \'2.2\' services: delores: # 容器名稱(chēng) container_name: rap2-dolores # 通過(guò)Dockerfile來(lái)構建本地鏡像 build: . # 通過(guò)images來(lái)構建,這里的地址暫不適用,因為src/config中的配置需要根據自己的服務(wù)器來(lái)動(dòng)態(tài)構建 # image rynxiao/rap2-dolores-nodejs # 指定工作目錄 working_dir: /home/rap2-dolores # 指定生產(chǎn)環(huán)境 environment: - NODE_ENV=production # 啟動(dòng)http-server,并映射端口到容器內部8081上 command: /bin/sh -c \'http-server ./build -s -p 8081\' privileged: true # expose port 38081 ports: - 38081:8081
更改src/config/config.prod.js
中的配置,將接口請求地址指向你的后端服務(wù)器,以下是我的配置,各位按需更改。
module.exports = { serve: \'http://wap.friendlycc.com.cn/host/ keys: [\'some secret hurr\'], session: { key: \'koa:sess\' } }
注意上面的 啟動(dòng)服務(wù) 這一步會(huì )執行鏡像的構建,使用 至此,我們就可以使用 nginx做二級域名轉換 你可能希望上使用 在騰訊云/萬(wàn)網(wǎng)中加一條A類(lèi)記錄 我使用的是騰訊云,阿里云的添加方法也大致類(lèi)似,這里請大家自行谷歌。 在nginx中增加一個(gè)server配置 rap2.{youdomain}.com.conf中的內容如下: 其實(shí)就是做了一個(gè)端口轉換。接下來(lái)在nginx.conf中進(jìn)行引入 然后我們就可以使用 注:{youdomain}替換為自己的域名 小結 算是對之前學(xué)習的docker進(jìn)行練手,通過(guò)實(shí)踐還是學(xué)到了一些自己不太熟悉的領(lǐng)域的一些知識,記錄共勉之。也希望大家多多支持特網(wǎng)科技。 更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問(wèn)題,請訪(fǎng)問(wèn)特網(wǎng)科技官網(wǎng):wap.friendlycc.com.cnxxx.xxx.xxx.xxx
是你公網(wǎng)的ip地址,如果你通過(guò)端口映射做了二級域名的配置,也可以去掉端口號,直接寫(xiě)你的二級域名就可以了,比如你的二級域名為:http://wap.friendlycc.com.cn/host/
> docker-compose up -d
docker ps
可以查看最新的構建鏡像,使用docker-compose ps
可以查看運行的容器http://wap.friendlycc.com.cn/host/
http://wap.friendlycc.com.cn/host/
> cd /usr/local/nginx-1.13.9/conf
> mkdir sites-enabled
> cd sites-enabled
> vim rap2.{youdomain}.com.conf
server {
listen 80;
server_name rap2.{youdomain}.cn;
access_log logs/rap2-site.log;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://wap.friendlycc.com.cn/host/
}
}
# nginx.conf http模塊
include /usr/local/nginx-1.13.9/conf/sites-enabled/*.conf;
# 重啟nginx
nginx -s reload
rap2.{youdomain}.com
來(lái)訪(fǎng)問(wèn)rap2服務(wù)了
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站