---
title: Lab Meeting Minutes 2021/10/20
tags: lab_meeting
---
> Outline
> [TOC]
---
# PERAL Lab Meeting
- 時間:110年10月20日15:00
- 地點:[Online - Gather town](https://gather.town/app/YlaBHzNoYKzSYK8M/NCNULibrary%20VIP%20Room)
- 出席者:吳坤熹老師、謝萬霖、周以恆、吳騰然、陳嘉瑋、劉怡君、田蕙瑜、劉又聖、洪胤勛、莊才賢、丘世宇
- 會議主題: [WebAPI Gateway](http://ms15.voip.edu.tw/~webmaster/meeting/1101/PPT/1031_API_Gateway.odp)
- 主講者: 洪胤勛
- 主記: 丘世宇
## 會議內容
### API Gateway
![](https://i.imgur.com/ArdalL3.png)
- 不用 Gateway 時,client 可能會需要跟好幾個 server 溝通
- 有 Gateway 時只需要跟 Gateway 溝通
- 只有 Gateway 需要 public IP address. 不必每台 Server 都一個 public IP address.
### Kong
- 以 Nginx 為基底, 資料庫用 PostgreSQL
- route
- client 在 8000 port 連上
- service
- 判斷要導去哪台伺服器
- 163.22.21.125 account: jerry or chofin pwd:(lab)
- 建立用 scripts
- 0_database.sh
- 1_dataInit.sh
- 2_kong.sh
- 查看有什麼 service
- `curl -X POST localhost:<uid>1/services`
- 建立 service
```
curl -X POST localhost:8001/services -d "name=sun" \
-d "url=https://api.sunrise-sunset.org"
```
- 建立 route
```
curl -X POST localhost:8001/services/sun/routes \
-d "name=sun-route" -d "paths[ ]=/sun"
```
- Access with api-key
```
curl localhost:10110/sun --header "apikey: branko-key"
```
### 建議&問題
1. WebAPI Gateway 跑在 Application-layer?[name=Jerry]
Ans: [name=]
2. Any mechanism about Load balancing? [name=Jerry]
Ans: I only know one service can map to a server.
3. Why Jerry said the function of this WebAPI is similar to Load Balancing.
Ans: Popular load balancer are Nginx and HA Proxy. My feeling is that WebAPI Gateway simply maps URLs to different servers.
4. Chopin: What special features using port (id -u)7?
Branko: Default: user:8000, mgmt:8081.
Those (id -u)7 are non-default port which I choose to avoid conflict.
5. 可以透過 Kong 觀察到 API 流量嗎? [name= Angela]
目前還只能從 container log 觀察,所以還不能有效觀察到流量。[name=Branko]
6. P.3 WebAPI Gateway 與防火牆的差異? [name= Jeffery]
Ans: 防火牆是讓你過或讓你不過,gateway 是導去不同 url.
7. 一個 service 只能設定一個 route 嗎? [name=Phoebe]
Ans: 一個 service 下可以有很多個 route.
8. service 跟 gateway 可以在不同台嗎 [name=Johnson]
service 就是在遠端
9. 有沒有任何保護? 如果別人打下 gateway,因為看剛剛在設定時沒有任何認證 [name=Henry]
Ans: 目前沒有
10. key 是產生在 service or route [name=Toby]
Ans: 都可以
11. TODO:
- https with Lets Encrypt (https://letsencrypt.org/getting-started/)
- Load Balancing based on Nginx
- API代管 (使用量統計)
## 待追蹤事項
1. [name=]
## 臨時動議
- 無
---
散會結束時間: 16:30