ว่ากันว่าเร็วกว่า nginx, Litespeed, Lighttpd, ใช้กับ DA ได้

พอดีไปเจอในบอร์ด DA http://www.directadmin.com/forum/showthread.php?t=40044

จุดเด่นคือ Both Dynamic and Static Object Caching น่าสนใจทุกอย่างยกเว้น “ไม่ฟรี”

  • แก้ไขเพิ่มเติมจากข้อมูลของคุณ KKE ครับ. สามารถ complie ได้เองเป็น Free software

https://www.varnish-cache.org/

สรรพคุณตามด้านล่าง

Why Varnish?

FASTER than Nginx, Litespeed, and Lighttpd.

Reduces server load to levels never seen before.

Serves pages FASTER from MEMORY instead of disks.

Absolutely free 14-day trial. UNIXY customers get it for Free!

No Apache Virtual Hosts or Rewrite rules voodoo. Keep Apache & PHP.

Works with suPHP, FastCGI, CGI, DSO (mod_php), mod_perl, ALL of them!

Features

Both Dynamic and Static Object Caching

Auto Upgrade / Installation of Varnish

Auto Installation / Deinstallation

Environment Detection

Opt-out Domain List Served Directly by Apache

VCL Script Compatibility

Requirements

DirectAdmin CP

CentOS > 5.5 - Supports 32-bit and 64-bit (recommended)

Python >= 2.4 (installed by default)

200Mhz CPU w/ 24MB RAM for Installation

Apache 2.0.x or 2.2.x w/ PHP

PCRE Lib - Auto-Installed via YUM

PHP Curl & Curl SSL Library (Custombuild if not installed)

ใช้อยู่ครับ เร็วจริง แรงจริง

อ้อ ของผม compile เองนะ ไม่ได้ใช้แบบ plugin

ข้างบนเป็นผู้ให้บริการ ที่นำเอา varnish มาใช้ และสร้างเป็น plugins ในการจัดการขาย ครับ

หากใครสนใจ varnish สามารถโหลดมาติดตั้งได้จากเว็บนี้ครับ https://www.varnish-cache.org/ เป็น opensource ครับ

ผมใช้ varnish เป็น front-end หน้า Nginx อีกทีนึง

มันเร็ว เพราะ cache static files ลงใน memory จึงอ่านได้เร็ว แต่ก็ใช้แรมเยอะเหมือนกัน (ขึ้นอยู่กับการเซ็ต)

ถ้ามีแรมเยอะๆ สัก 8GB up ก็ลงได้สบายครับ

ถ้าใช้แทน apache เลยได้ไหมครับ. มีปัญหากับ mod_rewrite ไหม. ram ผมมากมายครับไม่กลัวหมด

อ้อว่าแต่ที่ว่า cache dynamic file นี้เฉพาะ php หรือ รวม mysql ด้วยครับ. ถ้าได้ mysql นะแจ๋วเลย

varnish ไม่ใช่ http server นะครับ จะได้เอามาใช้แทน apache

มันเป็น cache backend ครับ เอามาขวางหน้า apache ไว้ (หลักการคล้ายๆ squid นั่นล่ะครับ)

เปลี่ยน port apache จาก 80 ไปเป็น port อื่น เช่น 8080

พอติดตัง varnish มันก็จะไป listen port 80 แทน apache โดยต้อง config varnish ด้วยว่าจะให้ไปหา content จากที่ใหน

อยากเห็นกราฟการใช้งานจริงเทียบระหว่าง

  1. Apache เพียวๆ (โหลดหนักแน่นอน)

  2. Apache + Nginx

  3. Apahce + Varnish

  4. Apache + Nginx + Varnish (เอา varnish ขวางหน้า เข้าไปอีก)

หลักๆอยางเห็นการเปรียบเทียบระหว่าง 2 กับ 3 ว่าอันใหนให้ performance ดีกว่ากัน

โดยส่วนตัวแล้วคิดว่า ข้อ 2 น่าจะใช้ RAM น้อยกว่าข้อ 3 แต่เร็วสู้ข้อ 3 ไม่ได้ (แต่ไม่น่าจะหนีกันมาก)

ผมใช้ Varnish มันตายบ่อยอะไม่รู้ทำไม

ผมไปเจออันนี้มาครับ http://nbonvin.wordpress.com/2011/03/24/serving-small-static-files-which-server-to-use/

เป็นการเปรียบเทียบ ว่า http software ตัวไหนทำงานด้าน static files ได้ดีกว่ากัน

Varnish / Apache / Nginx / Lighttpd / G-WAN (<-- ตัวนี้เพิ่งเคยเห็น)

ขาดแค่ Litespeed กับ Cherokee ก็ครบเซ็ตล่ะเหอๆๆๆ

ผลการ Benchmark ปรากฎว่า G-WAN ชนะครับ ค่อนข้างงงเต็กเลยทีเดียว

อ้อ ส่วนที่ผมใช้อยู่ (กับเว็บฝากรูป) ปัจจุบันคือ แบบนี้ครับ

Clents => Varnish cache => Nginx + PHP-FCGI

จะลองลงดูซิว่าเป็นยังไง

ที่ทำมา ใช้ nginx ดักหน้า มันจะไม่เป็น double cache ครับ

ใช้ filesystem cache ของ OS ในการ cache file แล้วให้ nginx รับ request static ชี้ root dir ไปที่ path ของ domain ตรงๆ

อันไหน dynamic ก็โยนให้ apache ให้หมด

ส่วน varnish นี่ มัน cache ลงแรมอีกทีนึงครับ ผมเซตยังไงก็ไม่ค่อยถูกชะตากับมัน (error 503 บ่อยมาก)

เลยเจอ double cache ไปเต็มๆ

If you still get an Error like this:

Error 503 Service Unavailable

Service Unavailable

Guru Meditation:

XID: XXXXXXX

Varnish cache server

try to add this in mysite.vcl:

.connect_timeout = 1s;

.first_byte_timeout = 5s;

.between_bytes_timeout = 2s;

This lets you control the amount of time until an varnish timeout happens.

ขอบคุณครับ

fast more than apache

Error 503 เกิดจาก web server ที่ใช้อยู่ เกิด timeout เองครับ

ปกติตัว varnish ทำงานเบามาก แทบไม่ใช้ CPU เลย แต่ต้องมี mem เยอะๆ หน่อย

ผมชอบ VCL ของ varnish ที่เราสามารถเขียนได้ละเอียด ตามที่ต้องการ

ตอนนี้ผมใช้ varnish เครื่องเดียวรับ load ขนาด 2,000,000 PV/วัน อยู่ครับ

ช่วยทำให้ apache ที่ทำงานเป็น backend แทบไม่มี load เลยครับ

ขอถามดังนี้ครับ

  1. ram ที่ว่าเยอะใส่ไปเท่าไหร่ครับ

  2. ถ้าให้เทียบระหว่างการเลือก apache + nginx กับ apache + varnish คิดว่าแบบไหนจะช่วยลดการ load ได้มากกว่าครับ

ตอบคำถามครับ

1.32GB ครับ H/D เป็น SSD ทำ RAID0 config ให้ใช้ mem 16GB

2.แล้วแต่งานครับ แต่ถ้าเอาแบบ สบายๆ ทั้ง static/dynamic ผมว่า VCL ของ varnish ดีกว่า nginx ครับ

แต่ถ้าเป็น static อย่างเดียว nginx เอาอยู่ครับ

ทดลองติดตั้งกับเครื่องลูกค้าดูแล้วเครื่องนึง เท่าที่ดูราบรื่นดี รอดูตอนโหลดหนักๆพรุ่งนี้ว่าจะเป็นไงบ้าง (โดน firewall block 127.0.0.1 ไปหลายรอบกว่าจะเจอว่ามาจาก script กัน dos ที่ลงไว้)

ลงทีแรกติดปัญหาว่า remote_ip ที่ apache มันมาจาก 127.0.0.1 หมดเลย เพราะมัน request มาจาก varnish แต่ก็แก้ไม่ยาก google ทีเดียวก็เจอวิธีแก้ละ

ไว้ว่างๆจะมาเขียน how-to ให้อีกทีครับ

คุณ KKE ลองที่ Ram กี่กิ๊กครับ. ถ้า work เดี่ยวจะลองทำดูลอง nginx แล้วไม่ค่อยเห็นความแตกต่างเท่าไหร่ (สำหรับผม) อยากลองเปลี่ยนแนวดูบ้าง