File server และ Reverse proxy

ด้วย Caddy 2 แทน Nginx เพิ่งเห็นว่า Caddy 2 ได้ปล่อยออกมาให้ใช้งานแล้ว Caddy เป็น project ที่พัฒนาด้วยภาษา Go ใน version ใหม่นี้ ทำการเขียนใหม่เลย โดยแยกส่วนการทำงานต่าง ๆ เป็น module ย่อย ๆ เพื่อให้ง่ายต่อการพัฒนาและเพิ่มความสามารถต่าง ๆ ตามที่ configuration

ความสามารถเด่นหลัก ๆ ของ 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

Caddy 2

การใช้งานง่ายมาก ๆ เพียงทำการ 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

0
222