haproxy on ubuntu redirect traffic from port 80 -> 8080

วันนี้มีโจทย์ว่าต้องการทำ ha-proxy ให้สามารถ redirect traffic จาก port 80 -> port 8080
โดยที่ให้คนเรียกเข้ามาจาก URL www.pkl.com ด้วย port 80 แล้วให้ redirect ไปยัง
โหนดที่เป็น tomcat server port (8080) ที่รันอยู่เป็นการทำงานแบบ redundancy กัน 2 node ก็สามารถทำได้ง่ายๆ ดังนี้ครับผม

IP Global : 103.229.xxx.yyy  -> ทำการ mapping www record ใน zone file ให้เรียบร้อยครับผม เป็น www.pkl.com เป็นต้น
IP Global : ตัวนี้ทำการ listen เป็น ip interface ของเครื่อง ubuntu 14.04 ตัวนี้
IP webserver01 192.168.205.16:8080
IP webserver02 192.168.205.17:8080

เริ่มเลยโดยการทำการลง OS : Ubuntu 14.04 เรียบร้อย

ก็เริ่มการ import source กันเลย
# echo deb http://archive.ubuntu.com/ubuntu trusty-backports main universe | \
tee /etc/apt/sources.list.d/backports.list

ทำการ update package และเริ่มลง haproxy
# apt-get update
# apt-get install haproxy -t trusty-backports

ทำการ enable haproxy ให้ทำงาน
#vi /etc/default/haproxy
ENABLED=1

ทำการ restart service 1 รอบ
#/etc/init.d/haproxy restart

ทำการปรับแก้ไข configure haproxy.cnf เพื่อทำการโหลดbalance ไปยัง node ลูกทั้งสองเครื่อง
haproxy.cnf

listen webfarm 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats
balance roundrobin
option httpclose
option forwardfor
server webserver01 192.168.205.16:8080 check
server webserver02 192.168.205.17:8080 check

##Reload haproxy service
sudo service haproxy restart

แล้วทดสอบเรียกเว็บ http://www.pkl.com ก็จะสามารถเรียกเว็บได้ครับผม
โดยที่เบื้องหลังการทำงานก็จะ เป็นการ load balance ระหว่าง webserver01 กับ webserver02 ตามลำดับครับผม
โดย feature พิเศษถ้าเป็น haproxy 1.5.x เป็นต้นไปจะสามารถใช้งาน SSL off load ได้ด้วยครับ
คือสามารถติดตั้ง certificate ssl ไว้ที่เครื่อง haproxy ได้เลย โดยที่ไม่ต้องติดตั้ง SSL ไว้ที่ webserver node ให้ยุ่งยากครับ
และเวลาจัดการ ssl cert ก็จัดที่เครื่อง haproxy ได้เลย : )

ทีมงาน devstack Packetlove.com

Add A Comment

Your email address will not be published. Required fields are marked *