Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
บริการเว็บไซต์ SSL ด้วยโปรแกรม HAproxy Load-balancer (Pass-through SSL และ SSL offloading)
1
บริการเว็บขนานใหญ่ในยุคปัจจุบัน
2
Private Public
Opensource
บริการเว็บไซต์แบบแบ่งภาระงาน HAproxy
• Frontend เครื่องแม่ข่ายเว็บส่วนหน้า ติดตั้งโปรแกรม Haproxy
• Backend เครื่องแม่ข่ายส่วนหลัง ติดตั้งแม่ข่ายบริการเว็บ
3
โปรแกรม HAproxy
จากเว็บไซต์ http://www.haproxy.org/ รุ่นปัจจุบันคือ 1.8 และ 1.9(ก าลังพัฒนา) โครงสร้างของเว็บแบบ Large scale ซ่ึงถูกเรียกว่า Load balancer
4
การใช้งาน Haproxy ร่วมกับ SSL
เนื่องจากเว็บไซต์ขนาดใหญ่ปัจจบุันพัฒนามาถึงการบริการเฉพาะ HTTPS หรือการเข้ารหัสด้วย SSL ด้วยรูปแบบที่นิยมคือ
• SSL-offload ส าหรับ Haproxy แบบ Reverse proxy
• SSL-passthrough ส าหรับ Haproxy แบบ Reverse proxy
5
การท างาน Haproxy ร่วมกับ SSL-offload
ออกแบบให้ Frontend ติดตั้ง HAproxy ท าหน้าที่เข้ารหัส และส่งค าขอเว็บจริงหรือข้อมูลจริงของเว็บไปยังแม่ข่ายเว็บจริงส่วนหลัง การทดสอบเลือกใช้ H2load เพ่ือร้องขอหน้าเว็บแบบ HTTPS
6
Nginx HTTP/2
Nginx HTTP/2
Nginx HTTP/2
Backend
HAproxy
Frontend
Port 81
H2load benchmark
HTTP/2+SSL
SSL-offload
การท างาน Haproxy ร่วมกับ SSL-offload
….frontend www-https
bind haproxy_www_public_IP:443 ssl crt /etc/ssl/private/example.com.pem
reqadd X-Forwarded-Proto:\ https
default_backend www-backend
backend www-backend
redirect scheme https if !{ ssl_fc }
server www-1 www_1_private_IP:80 check
server www-2 www_2_private_IP:80 check
7
การท างาน Haproxy ร่วมกับ SSL-passthrough
รูปแบบ SSL-passthrough เป็นการก าหนด SSL ให้กับแม่ข่ายเว็บที่ใช้ไฟล์ SSL key เดียวกัน โดยก าหนดให้จาก HAproxy ไปสู่เครื่องแม่ข่ายเว็บผ่านพอร์ต 443
8
Nginx HTTP/2
Nginx HTTP/2
Nginx HTTP/2
Backend
HAproxy
FrontendPort 443
H2load benchmark
HTTP/2+SSL
SSL-passthrough
การท างาน Haproxy ร่วมกับ SSL-passthrough
….frontend www-https
bind *:443
option tcplog
mode tcp
default_backend www-backend
backend www-backend
balance roundrobin
option ssl-hello-chk
server www-1 www_1_private_IP:443 check
server www-2 www_2_private_IP:443 check
9
การวัดประสิทธิภาพการให้บริการ
น าเว็บไซต์ตัวอย่างจากหนา้เว็บ https://freshdesignweb.com/ustora/ จ านวน 16 หน้า เพ่ือใช้สร้างเป็นภาระงาน Workload เพ่ือใช้โปรแกรม H2load แบบ multiple page เรียกเข้าสู่เว็บไซต์
10
ค่าเวลาเฉล่ียในการตอบสนองหน้าเว็บ Bootstrap
SSL-passthrough มีเวลาตอบสนองที่ดีกว่า SSL-offload ด้วยเส้นกราฟ เมื่อเพ่ิมจ านวนลูกข่าย
11
100 200 300 400 500SSL-passthrough 208.21 409.81 554.81 715.88 1,019.33SSL-offload 192.01 513.71 670.15 963.13 1,055.13
-
200.00
400.00
600.00
800.00
1,000.00
1,200.00av
erag
e la
tenc
y tim
e (m
s)
ค่าแบนด์วิดธ์ของบริการเว็บ Bootstrap
SSL-passthrough ให้ค่าแบนด์วิดธ์คงที่ทุกจ านวนลูกข่าย และให้ค่าที่สูงกว่า SSL-offload ที่มีค่าไม่คงที่
12
100 200 300 400 500SSL-passthrough 301.40 302.00 312.24 312.02 310.27SSL-offload 302.38 216.13 223.03 199.64 275.99
-
50.00
100.00
150.00
200.00
250.00
300.00
350.00Ba
ndwi
dth
(MB/
s)
ค่าปริมาณการให้บริการเว็บ Bootstrap
ส าหรับปริมาณการร้องขอหน้าเว็บ พบว่ามีค่าคงที่ส าหรับ SSL-passthrough ซ่ึง SSL-offload ให้ผลลัพธ์แตกต่างตามจ านวนลูกข่าย
13
100 200 300 400 500SSL-passthrough 4,109.87 4,066.70 4,268.93 4,213.75 4,089.63SSL-offload 4,123.33 2,910.55 3,049.30 2,696.08 3,637.77
-
500.00
1,000.00
1,500.00
2,000.00
2,500.00
3,000.00
3,500.00
4,000.00
4,500.00
Perfo
rman
ce (R
eq/s
)
บทสรุป
SSL-offload
ประสิทธิภาพของ SSL-offload การรวมศูนย์ของการเข้ารหัสไว้ ณ HAproxy ซ่ึงมีผลกระทบที่ส าคัญคือ ท าให้มีการใช้ CPU บนเครื่องส่วนหน้าสูงกว่าปกติ
SSL-passthrough
จ าเป็นต้องแยกการเข้ารหัส SSL ไว้บนเครื่องแม่ข่ายเว็บ และลดภาระของ HAproxy ส่วนหน้าได้อย่างชัดเจนและเพ่ิมประสิทธิภาพแบนด์วิดธ์ได้เต็มที่
14
ค าถาม/ข้อเสนอแนะ
15