สิ่งที่ต้องเตรียมใน workshop นี้
1 สมัคร https://www.digitalocean.com/ เพื่อเตรียมไว้สร้าง Server ทดสอบ
2 สมัคร https://www.cloudflare.com/ เพื่อตั้งค่า dns ของโดเมนและซับโดเมน
3 Unix/Linux Command เบื้องต้น เช่น cd, mkdir
4 nginx และ Docker Compose พื้นฐาน ดูได้จาก https://thana.in.th/2020/05/06/ติดตั้ง-nginx-ด้วย-docker-compose/
เมื่อเตรียมพร้อมแล้วเรามาเริ่มกันเล้ย
สร้าง Droplet ใหม่ที่ DigitalOcean
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-15.21.31-1024x721.png)
เลือก plan ต่ำสุดเพื่อนำมาทดสอบ แล้วค่อยระเบิดทิ้ง แต่ท่านใดเงินเหลือๆ เลือก 32 cpu เพื่อความลื่นปรื๊ดก็ไม่ว่ากันฮะ 555+
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-15.22.36-1024x768.png)
สร้างเสร็จแล้ว ท่านใดเลือก one-time password ก็เซตให้เรียบร้อย แต่ท่านใดใช้ Authen แบบ ssh key ก็เข้า Terminal รอไว้เลย
ติดตั้ง Docker เพื่อเตรียมไว้ทำ Workshop
curl -sSL https://get.docker.com/ | sh
ติดตั้งเสร็จ ทดสอบด้วย
docker -v
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-15.33.35.png)
ขั้นต่อไปจะ build container จาก nginx image เพื่อทดสอบ
สร้าง directory
mkdir -p /host/workshop/wrk-proxy
สร้างไฟล์ docker-compose.yml
version: '2.0'
services:
web:
image: nginx:1.13.0-alpine
container_name: workshop1
ports:
- "8081:80"
volumes:
- /host/workshop/wrk-proxy/html:/usr/share/nginx/html
สร้าง index.html ไว้ที่ /host/workshop/wrk-proxy/html
<html>
<h1>Workshop1</h1>
</html>
จากนั้นใช้คำสั่ง
docker-compose up -d
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-16.03.26-1024x160.png)
ตรวจสอบ container ด้วย
docker ps -a
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-16.06.20-1024x57.png)
เปิด browser [ip address server]:[port]
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.57.34-1024x471.png)
กลับไปที่ terminal ติดตั้ง nginx
apt install nginx
ติดตั้ง nginx เสร็จเรียบร้อยก็ไปตรวจสอบดูที่ Browser พิมพ์ [ip address server] จะขึ้นหน้า Welcome to nginx
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.23.13-1024x543.png)
จากนั้นเข้าไปที่ https://www.cloudflare.com/ Add Domain เข้าไปจากนั้นก็ไปตั้งค่า DNS ให้ชี้มาที่ Server
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.32.26-1024x594.png)
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.27.45-1024x414.png)
จากนั้นเราก็ไปเรียกดู zity.co จะขึ้นหน้า Welcome to nginx ที่เราติดตั้งไว้
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.36.46-1024x471.png)
ต่อไปเราจะทำการเพิ่ม Sub Domain เข้าไปโดยกดปุ่ม Add record
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.39.18-1024x451.png)
ใส่ชื่อ Sub Domain ที่ต้องการ และ ip address server
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.40.19-1024x491.png)
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.44.40-1024x444.png)
กลับไปที่ terminal เพิ่มไฟล์ workshop1
nano /etc/nginx/sites-available/workshop1
server {
listen 80;
listen 443 ssl http2;
server_name workshop1.zity.co;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
จากนั้นก็ใช้คำสั่ง
ln -s /etc/nginx/sites-available/workshop1 /etc/nginx/sites-enabled/
เสร็จแล้วตรวจสอบด้วย
nginx -t
หากขึ้น ตามนี้ก็เสร็จแล้ว หากขึ้น error ก็กลับไปตรวจสอบ path หรือชื่อไฟล์
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.52.39-1024x209.png)
สุดท้ายก็ restart nginx ก็เสร็จแล้วครับ
systemctl restart nginx
จากนั้นเราก็ไปตรวจสอบที่ brower โดยพิมพ์ workshop1.zity.co หากแสดงผลตามหน้า ip adress server:8081 ก็สำเร็จแล้ว
![](https://thana.in.th/wp-content/uploads/2020/05/Screen-Shot-2563-05-09-at-21.57.53-1024x464.png)
ปอลิง
แน่ะ รู้นะคิดอะไรอยู่ คนจริงเค้าโชว์ ip เครื่อง server กันฮะ แมนๆกันไปเลย หุหุ รีบลบตั้งแต่ ทำ workshop เสร็จแล้ว ไม่กลัวโดนยิงแต่กลัว DO มันแบนมากกว่า งานอยู่กะมันเต็มเรย ถถถถถ+