Hiện tại có rất nhiều hướng dẫn cấu hình để có thể tạo được VPS chịu tải lớn trên mạng thông qua load balancing, optimize các services… Hôm nay, mình sẽ hướng dẫn các bạn một cách khác sử dụng kết hợp HocVPS Script, Zend Opcache, Memcache để có thể xây dựng được VPS có thể chịu được hàng nghìn người online cùng lúc.

Mình đã thử cài đặt VPS ở Vultr với gói 0.022$/giờ ~ 15$/tháng, 2 CPU, 2GB RAM thấy có lúc online đến 4k (theo thống kê Google Analytics) vẫn chạy ổn. Tiếc là ko có điều kiện test lâu dài xem thực tế sức chịu đựng của VPS như thế nào.

Hình ảnh chụp lúc online 4.363 người ngày 12/11/2014, đo bằng Google Analytics, site tin tức bằng WordPress:

43633

Số lượng người online nhiều như vậy nhưng chỉ sử dụng hết 20% CPU, RAM còn thừa rất nhiều, nếu hoạt động hết công suất không biết lên đến mấy k online nữa 🙂

Học VPS có dịch vụ cài đặt và tối ưu VPS trọn gói, chuyên nghiệp, nhanh gọn. Nếu bạn không có nhiều kinh nghiệm với VPS, hoặc không muốn tốn nhiều thời gian cài đặt, hãy sử dụng dịch vụ.

1. Cài đặt HocVPS Script

hocvps script

Sử dụng HocVPS Script bạn sẽ được tự động cài đặt và tối ưu LEMP server trên CentOS. Trước khi tiến hành cài đặt, nhớ chọn hệ điều hành CentOS, location Japan ở Vultr để có tốc độ về Việt Nam nhanh nhất.

Ngoài ra bạn nên tạo thêm swap 1GB cho VPS (thường swap gấp đôi hoặc ~ RAM)

Các bước cài đặt thực hiện tương tự như hướng dẫn cài đặt HocVPS Script.

2. Cài đặt Zend Opcache

Zend OPcache

Mục đích sử dụng Zend OPcache để tối ưu và tăng tốc PHP, điều này đặc biệt quan trọng và bắt buộc phải cài với những VPS có số lượng người online lớn. Qua đó giảm thiểu hoạt động của CPU và giảm đáng kể số lượng RAM mà PHP sử dụng.

HocvPS Script đã tự động cài đặt Zend OPcache giúp bạn, giờ chỉ cần điều chỉnh lại các tham số cho phù hợp với nhu cầu sử dụng của bạn mà thôi.

Bạn hãy theo dõi tình hình thực tế khi chạy VPS với 1 trình web viewer, ví dụ opcache-gui (server cài HocVPS thì đường dẫn là http://domain.com:port/op.php). Tăng hoặc giảm bộ nhớ làm sao giữ cho memory usage <= 70% là ổn, bộ nhớ còn trống sẽ được dùng cho các việc khác.

Lưu ý Bước tiếp theo bạn có thể dùng plugin cache như WP Super Cache hoặc Memcached với W3 Total Cache (bước 3 và 4). Nên thử với WP Super Cache trước, vì đa phần các website chỉ cần plugin này là đủ, mà cài đặt lại đơn giản.

3. Cài đặt Memcached

VPS-Memcached-WP-Site-Speed

Memcached mình sử dụng để cache query database, object và page cache. Thông thường, các dữ liệu trên thường được cache bằng cách sử dụng disk, nhưng memcached lưu thông tin trên RAM nên hiệu suất và tốc độ được tăng lên rất nhiều.

Các bạn thực hiện theo như hướng dẫn cài đặt memcached. Trong phần Cấu hình Memcached lưu ý tăng thông số MAXCONN="1024" thành MAXCONN="10240"

# nano /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="10240"
CACHESIZE="128"
OPTIONS="-l 127.0.0.1 -U 0"

Tương tự như Zend OPcache bên trên, bạn nên sử dụng tool theo dõi phpMemcachedAdmin, điều chỉnh đảm bảo cho bộ nhớ <= 70%, tránh việc thừa quá nhiều RAM (như blog Học VPS do chỉ là WordPress nên dành 64MB RAM cho memcached).

Ở bước cuối bạn không cần thiết phải cài plugin WP-FFPC cho WordPress vì chúng ta sẽ sử dụng plugin W3 Total Cache như hướng dẫn bên dưới.

4. Cấu hình W3 Total Cache

Để đảm bảo mọi thứ hoạt động trơn tru, các bạn hãy sử dụng plugin W3 Total Cache. Bình thường mình vẫn hay sử dụng plugin WP Super Cache vì nó đơn giản, dễ dùng và cũng rất hiệu quả (Canh Me hiện đang dùng). Tuy nhiên khi đã sử dụng đến Memcached, bạn bắt buộc phải chuyển qua W3 Total Cache hoặc WP-FFPC.

W3 Total Cache

Sau khi cài đặt xong plugin, các bạn hãy kích hoạt Page Cache, Database cache và Object Cache sử dụng method là Memcached. Ngoài ra, cũng cần kích hoạt Browser Cache và CDN nếu có thể.

Hãy nhấn vào từng mục để có thể cấu hình chi tiết cụ thể hơn.

Hi vọng, với bài viết này các bạn sẽ có thể tự build được 1 VPS chịu tải tốt. Đừng quên để lại comment bên dưới thông báo kết quả bạn đạt được sau khi thực hiện nhé.

Tagged:

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

843 Comments

  1. Anh Kim 14 comment

    Một vấn đề nữa mình muốn hỏi AD:

    Mình muốn thêm một tài khoản Admin và group nginx để có quyền truy cập full folder /home/

    Có thể truy cập qua ssh và ftp như của DirectAdmin được không AD ?

    Như thế mình sẽ dễ dàng quản lý dữ liệu hơn… cũng như việc upload hay chỉnh sửa file trực tiếp bằng các software.

    1. Luân Trần Admin

      Cái này đơn giản, bạn dùng lệnh add user và gán group trong CentOS là ok.
      Lưu ý sau không để backlink 18+, cảnh cáo lần 1!

  2. Trần Tuấn 3 comment

    Cài hocvps có cho phân quyền kiểu như chia host , package cho người khác dùng mà người khác dùng 1 cách an toàn như sentora không Luân.
    cho mình hướng dẫn với. thấy chạy hocvps nhẹ nhàng hơn sentora.

      1. Trần Tuấn 3 comment

        Cảm ơn Luân đã comment, vậy cho mình hỏi có cách nào vừa dùng script vừa phân quyền cho việc trên không, hay là mình phải chơi control panel mới phân quyền trên đc, 🙂

        1. Luân Trần Admin

          Nếu muốn sử dụng như vậy bạn phải dùng các control panel rồi mới phân quyền được.

  3. Anh Kim 14 comment

    Chào AD vấn đề bị lỗi mình đã xử lý hoàn tất… Nhưng còn them domain thứ 2 thì phân quyền không đúng… nên website bị báo lỗi: No input file specified.

    Mong AD hướng dẫn cách phân quyền ạk.. mình kg biết cách thêm quyền..

    1. Luân Trần Admin

      Bạn chạy lệnh hocvps rồi chọn chức năng số 14, Phân quyền Webserver là ok.

      1. Anh Kim 14 comment

        Mình bấm biết mấy lần rồi đó bạn… Nhưng nó lạ ở chỗ… Nếu mình cài mới WP thì ok.. còn dùng DB Retore thì nó bị như vậy: No input file specified

      2. Anh Kim 14 comment

        AD giúp mình xử lý vấn nạn này xem…

        Domain add đầu tiên thì ok.. còn thêm domain thứ hai thì có vấn đề :

        No input file specified. (Khi bài viết dạng Preview thì xem được.)

        Mình tìm cách fix cả ngày đêm cũng kg được.. Mong bạn hỗ trợ…

        Bạn truy cập: https://seoer.kim/seo

        1. Anh Kim 14 comment

          Mày mò cả ngày trời mới thấy điểm lỗi.. hix… thì ra cho mình để WP ở thu mục khác html root… rule mặc định của hocvps kg đúng.

          1. Anh Kim 14 comment

            Vâng.. rất ok… mặc dù mới toanh về Nginx… nhưng qua sự mày mò và tìm hiểu… thì thấy… cấu hình đơn giản hơn Apache rất nhiều…

            Server mình 6Gb ram: Cache 1,2Gb .. Nên 100 user online chỉ mất 2Gb ram luôn ram cache…

            Ngon rồi… Trước mình luôn bị Overload phải restart hoài bực mình…

  4. Hữu Hùng 35 comment

    Zend Opcache hình như trong hocvps script có sẵn rồi mà anh? Sao anh còn hướng dẫn cài nữa?

  5. Anh Kim 14 comment

    pó tay rồi Ad ơi… mình cài xong vào phpmyadmin không được… trong menu hocvps nhấn tạo DB cũng không được.. nó bảo chưa khởi động hoặc bị lỗi… MariaDB. Trong khi mình cài test trên máy ảo tại laptop thì ok hết… còn này cài lên VPS thì linh tinh lỗi… giờ làm sao đây AD

      1. Anh Kim 14 comment

        Mình dùng LongVan ạk… giờ làm sao… hix.. bạn rãnh kg.. Remote qua xem giúp mình đi.. Web down sạch rồi.

      2. Anh Kim 14 comment

        Mình kiểm tra thấy MariaDB chưa được cài.. Nên mình cập nhật bằng trên menu hocvps và cài thành công.. Tạo DB ok nhưng vẫn không đăng nhập được phpmyadmin… báo lỗi #1045 – Access denied for user ‘…..@’localhost’ (using password: YES)

        1. Luân Trần Admin

          Password cho tài khoản root MySQL thì do script tự động generate và hiển thị sau khi cài xong script nhé.
          Nếu ko để ý thì bạn mở file /root/hocvps-script.txt lên coi lại.

  6. Anh Kim 14 comment

    Bây giờ mình đang cài Script HocVPS.. hy vọng mọi thứ ok, không gặp rắc rối gì… ! mình sẽ thông tin cho bạn khi thành công hay có vấn đề cần bạn giải quyết hộ.

  7. Anh Kim 14 comment

    Thật bái phục.. Nhưng theo hình trên có phải dùng VPS 2 Ram không vậy ? Nếu đúng như vậy thì mình cũng muốn sử dụng thử cái tools quá hót này.

    Bởi vì hiện tại, mình đang dùng Zen VPS 2 Core – 6Gb ram nhưng user online 120 là overload rồi… Mình dùng DirectAdmin..

    Cần bạn tư vấn thêm …

      1. Anh Kim 14 comment

        Thật thế ư ? VPS của mình 6Gb mà chỉ 120 là lag cực kỳ rồi… Mình đang định yêu cầu bên dịch vụ cài lại mới Centos. Thế Script của bạn thích hợp với phiên bản Centos nào nhất ?

        1. Luân Trần Admin

          HocVPS Script tương thích với CentOS 6 và 7, mình hay dùng 6 hơn nên script cũng ổn định hơn với phiên bản này. Bản thân DirectAdmin đã tốn nhiều tài nguyên nên không còn cho website, số lượng online không được cao là đúng rồi.

          1. Anh Kim 14 comment

            Ok… như thế mình sẽ yêu cầu bên cung cấp vps Reinstall lại cho mình và cài Script của bạn nhé…

            Nếu có vấn đề gì… thì bạn vui lòng TeamViewer xử lý giúp mình nhé… Vì kg phải dân chuyên centos ssh.

          2. Luân Trần Admin

            Cần gì bạn cứ liên hệ email hoặc để lại comment mình sẽ support.

  8. Thành 2 comment

    Chào bạn,

    Cho mình hỏi tắt ghi log đi thế nào vậy bạn, mặc dù mình thấy một số tính năng ghi log để off rồi mà sao nó vẫn ghi nhỉ.

    Cảm ơn bạn.

    1. Luân Trần Admin

      Bạn mở file cấu hình .conf của từng domain để off log đi là xong.

    1. Luân Trần Admin

      Đó là chức năng bảo mật của bản mới nhất. Bạn hãy dùng account admin, password tự generate trong quá trình cài đặt nhé. Mình có update thông tin ở đây rồi: https://hocvps.com/script/

  9. Mã giảm giá 5 comment

    Sao e dùng lệnh SSH bằng ZOC thì ko viết đc nhỉ cứ phải copy paste vào thì chạy và viết là nó ko chạy, tòa viết ra rồi copy paste vào

  10. Ngọc 2 comment

    Em chào anh ạ. Em có cài hocvps trên vps để cài nukeviet 4 nhưng khi cài đặt thì nó báo là Hỗ trợ rewrite không tương thích ạ. Em nên làm gì để cho nó tương thích ạ :(. Em xin cảm ơn ạ

  11. nguyễn huyền 20 comment

    Mình làm theo các bước của Luân Trần và web mình load nhanh với vps của vultr và cài hocvps nhưng mà không hiểu sao lại báo lỗi này ở cuối trang : starloveshop.com luân xem giúp và chỉ giúp mình nhé.
    Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /home/starloveshop.com/public_html/wp-includes/functions.php on line 3549

    thanks!

        1. Luân Trần Admin

          Đây chỉ là giải pháp tạm thời thôi, bạn dùng cũng được nhé.

  12. Dương Thuận 2 comment

    Chào Luân!

    VPS của mình đặt ở VN, Ram 2GB
    Mình tự cài đặt các chương trình như sau:
    1. apache httpd
    2. mariadb
    3. php 5.6
    4. phpmyadmin
    5. memcache
    6. Zend Opcache

    Nhưng mình đang ko hiểu sao mình cài đặt wp mà thời gian mất tầm 5 – 10p mới xong
    Nhờ bạn support mình chút

    1. Luân Trần Admin

      Mất nhiều thời gian như vậy có gì đó ko ổn rồi, có gì đặc biệt ko bạn?

      1. Thuandh 2 comment

        Ko có gì đặc biệt bạn ak, wp bản mới nhất, cài lên thôi, chứ chưa cài plugin gì cả
        Chắc phải nhờ Luân ngó qua server giúp mình xem có đoán đc nguyên nhân vì sao k

  13. Tài liệu 1 comment

    Mình muốn xài PVS nhưng mù cài đặt, ai có hướng dẫn chi tiết về cách cài đặt và sử dụng shase cho mình tham khảo với

  14. Nguyen 2 comment

    Chào Anh, em đã config như a chỉ, mọi thứ có vẻ như rất ok.
    Tuy nhiên em có thắc mắc là khi em dùng lệnh free -m thì em chỉ còn free có 75Mb, trong khi đó coi qua vpsinfo thì còn dư đến 713Mb (memory physic), vps em có 1Gb Ram ạ

  15. tu 52 comment

    Hocvps script không cho xóa site chính của mình nhỉ 🙂 do mình không biết code nên rất hay dùng plugin, mình dùng plugin Duplicator để backup site chính của mình về và chỉnh sửa trên local, khi sửa xong mình muốn xóa toàn bộ code site chính trên VPS đi thì nó không cho xóa 🙂 có cách nào để dùng plugin Duplicator cho site chính không Luân ơi 🙂

    1. Luân Trần Admin

      Bạn dùng File Manager xóa toàn bộ nội dung bên trong thư mục public_html là được.

      1. Long Nguyen 2 comment

        Mình gởi thông tin vps. bạn kiểm tra giúp mình được không vậy. VPS 2Gb của Vultr mà chạy khoảng vài trăm là bị đứng bạn à

  16. Ngọc 2 comment

    Em cấu hình xong tất cả rồi. Bây giờ cài wordpress lên kiểu gì anh. Có cần cài sentora nữa không

    1. Luân Trần Admin

      Cài HocVPS rồi ko dùng Sentora nữa. Dùng file manager upload site lên đi.

  17. ykhoathuha 3 comment

    mình muốn cấu hình 1 site chạy 2 server. 1 server chạy source, 1 server chạy mysql ;search google thế nào để tìm đc kết quả chính xác nhất bạn nhỉ

    1. Luân Trần Admin

      Sao lại phải chạy như thế làm gì cho phức tạp bạn nhỉ? Bạn có thể tìm với từ khóa Load Balancing

  18. dlinh 2 comment

    không liên quan nhưng anh dùng plugin gì để tạo nút chai sẻ vậy, nhanh và đẹp ghê chỉ em với

  19. Thắng 22 comment

    càm ơn bài chia sẻ rất hay , mình đang tính xài DEDICATED CLOUD hoặc CLOUD SERVER bên này http://longvan.net/cloud-server.html của VN ( site mình có chứa nhiều video, cũng mong muốn online 5-10k như Bác ^^) 1.mình tính cài direct admin vậy mình có tối ưu như bài viết này để chịu tải tốt hơn dc ko ạ , cảm ơn nhiều.
    2.nếu được tư vấn giúp mình nên xài cái nào ở trên hoặc dùng gói khác ở chỗ khác dc ko ^^ tks so much

  20. nguyễn văn đôn 1 comment

    Mình đang mò mẫm tìm hiểu về vps và cách cài vps để mua 1 cái vps giá rẻ dùng cho site vệ tinh. Người mới như mình đọc bài này thực sự là chẳng hiểu gì. Bạn có thể giới thiệu tóm tắt cho mình 1 cái vps giá rẻ mà mình phải tự quản trị thì lúc đầu nó có cái gì, và để cài đặt chạy 1 website dùng wordpress thì cần làm những gì không?
    Cám ơn bạn

  21. thanhnhon 1 comment

    Chào Luân, mình mới cài trên cent os 7. Nhưng bị báo lỗi ko cách gì mở được phpmyadmin

    1. Luân Trần Admin

      À cái này do lỗi script ấy, mình chưa update lại đường dẫn sau khi nâng cấp version mới.
      Giờ ok rồi nhé.

  22. ykhoathuha 3 comment

    Sử dụng HocVPS Script bạn sẽ được tự động cài đặt và tối ưu LEMP server trên CentOS. Cài đặt khó khó kiểu gì đấy nhỉ

  23. Anh Nguyen 1 comment

    Mình cài thêm ngx_pagespeed, mặc dù có nhanh hơn chút nhưng mà lượng concurrent requests phải nói là giảm xuỗng đáng kể

  24. bootcamp 1 comment

    Luân cho mình hỏi, sau khi cấu hình vps theo bài này, mình muốn host nhiều site trên cùng vps, mình theo các bước sau:
    – clone và replace domain của file config trong nginx conf.dd
    – copy và rename thư mục trong home
    – Khởi động lại các dịch vụ nginx ..
    Theo Luân như vậy được chưa, mong Luân tư vấn để có thể host nhiều domain trên cùng vps đã setup như Luân hướng dẫn. Cám ơn nhiều!

    1. Luân Trần Admin

      Bạn có dùng HocVPS Script không thế, nếu có thì không cần phải thao tác như thế này làm gì cho phức tạp 😀

  25. Hoàng 14 comment

    Em chào anh, em đang dùng VPS của wable. Em cài theme porto nhưng import bản demo vào thì bị lỗi giao diện không giống demo, e thử trên stablehost thì không bị lỗi. Em nghĩ VPS nó chặn cái gì đó khiến không upload được hết dữ liệu demo, kể cả khi chuyển file & database đã cài đặt thành công ở stablehost sang vẫn bị lỗi giao diện tương tự.

    Mong a chỉ giáo. Em cám ơn nhiều.

    1. Luân Trần Admin

      Vấn đề này có rất nhiều lí do, nếu nói chung chung thế này mình cũng chịu rồi.

  26. Linh 22 comment

    Chào anh.
    em có làm theo hướng dẫn ở bài này: https://hocvps.com/video-cai-dat-wordpress-tren-vps-digital-ocean/
    và đã đưa được website hoạt động trên vps digitalocean. Nhưng có một vấn đề em muốn hỏi đó là cách tối ưu nó vì website em đang dùng vps 40$ / tháng của digitalocean mà hay xảy ra lỗi: web đơ không truy cập được, thỉnh thoảng lại có dòng thông báo lỗi này: Nginx is functioning normally
    Em cũng không biết xử lý sao nên tắt vps đi mở lại 1 lúc là được.
    Nhờ anh hướng dẫn dùm em cách chỉnh sửa tối ưu.
    Cảm ơn anh !

    1. Luân Trần Admin

      Bạn nên cài đặt VPS mới sử dụng HocVPS Script với cấu hình tối ưu theo bài này, đảm bảo server sẽ hoạt động hiệu quả hơn rất nhiều đó.

      1. Linh 22 comment

        Có hướng dẫn nào chuyển website wp qua mà dùng Scripts này ko a ơi.
        Nếu chưa hướng dẫn thì cho em cái gợi ý để e làm theo nhé

  27. Tên lửa 1 comment

    Mình có 1 con vps vultr và ko bít config, bạn có thể config giúp mình ko?

  28. khanhvn 3 comment

    Chào A, có tool nào ngoài benmark để test thử độ chịu tải tối đa của vps ko ạ?

      1. Thuận 1 comment

        Em có thể hỏi anh 1 câu là trung bình traffic 1 tháng bên chiasecoupon là bao nhiêu thế hả anh, ngưỡng mộ quá