File server และ Reverse proxy
ด้วย Caddy 2 แทน Nginx เพิ่งเห็นว่า Caddy 2 ได้ปล่อยออกมาให้ใช้งานแล้ว Caddy เป็น project ที่พัฒนาด้วยภาษา Go ใน version ใหม่นี้ ทำการเขียนใหม่เลย โดยแยกส่วนการทำงานต่าง ๆ เป็น module ย่อย ๆ เพื่อให้ง่ายต่อการพัฒนาและเพิ่มความสามารถต่าง ๆ ตามที่ configuration
2021-10-19 16:18:57 - @ratanon
ความสามารถเด่นหลัก ๆ ของ Caddy 2 ประกอบไปด้วย
- ความง่ายและเร็ว
- จัดการ certificate ให้แบบอัตโนมัติ ซึ่งจะทำงานร่วมกับ Let’s encrypt
- File server
- Reverse proxy
เพื่อความสนุกจึงมาลองใช้งาน Caddy 2 สำหรับการทำงาน File server และ Reverse proxy
โดยปกติมักจะใช้ NGINX แต่มาลองใช้ผ่าน Caddy ดู สิ่งที่ต้องการเป็นดังนี้
- File server สำหรับจัดเก็บพวก HTML, CSS และ JavaScript
- Reverse proxy สำหรับการส่ง request ที่เข้ามาเป็น /api ผ่ายน port 3333 จะ reverse ไปยัง API ที่เป็น private ซึ่ง run ด้วย port=8000
การใช้งานง่ายมาก ๆ เพียงทำการ config ในไฟล์ Caddyfile ดังนี้
:3333 reverse_proxy /api/* api:8000 root * /home/www file_server
จากนั้นทำการ start ด้วย Docker ไปเลย
FROM caddy:2.0.0-alpine COPY Caddyfile /etc/caddy/Caddyfile COPY index.html /home/www/
เพียงเท่านี้ก็สามารถสร้าง File server และ reverse proxy แบบง่าย ๆ ไว้ใช้งานในการพัฒนาระบบงานแล้ว
ส่วน code แบบเต็ม ๆ ดูเพิ่มได้ที่ GitHub::Up1