• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Mô Hình Web Server Load Balancing Giá Rẻ Với DigitalOcean

Admin

Well-Known Member
Staff member
Administrator
Để thực hiện một mô hình load balancing có thể nhiều người nghĩ tới việc chi phí lớn và tốn công config . Nhưng tôi mới có ý tưởng tạo một mô hình load balancing với VPS của DigitalOcean

Đầu tiên tôi chỉ để thử nghiệm . Tôi tạo 4 con VPS ram 512 tại DigitalOcean, vì DigitalOcean họ tính tiền theo giờ sử dụng do vậy tôi không ngại tạo VPS để thử , tạo 4 con mỗi ngày chỉ mất có 14 ngàn tiền việt

- VPS thứ nhất tôi cài đặt webserver nginx (chỉ nguyên nginx) để tạo cấu hình load balancing với module upstream mặc định có khi cài đặt link nginx.org/en/docs/http/ngx_http_upstream_module.html
- VPS thứ 2 và thứ 3 tôi cài đặt PHP-FPM và không cài webserver vì ỷ tưởng của tôi muốn 2 VPS này chỉ làm PHP server
- VPS thứ 4 tôi cài MYSQL server cũng không cài webserver luôn vì tôi chỉ để làm database server
Ảnh minh họa tôi vẽ tạm thế này cho các bạn dễ hình dung

49802345526_0bc03a0e78_o.png


Tôi đã chạy thử nghiệm site chính thức với lượng online tầm 1 ngàn user với forum xenforo và lượng viết bài trên forum khá nhanh .

Kết quả ban đầu thấy ổn
VPS thứ nhất với vai trò là frontend nhưng chỉ chạy nginx thôi do vậy load nhẹ nhất . Các VPS còn lại CPU gói RAM 512 chỉ có 1 core nhưng chưa khi nào load quá 50%
Với mô hình load balancing nhỏ này nếu thành công thì tôi sẽ giảm được đến chi phí . trước đây tôi phải chạy trên VPS với giá tầm 70 USD thì mới chạy được cái site đó
Hiện tại tôi vẫn đang thử nghiệm nhưng chưa thấy gặp phiền phức nào .
Sơ qua về CẤU HÌNH CỦA TÔI
Đầu tiên tôi nghĩ các VPS của tôi chỉ có thể kết nối với nhau thông qua mạng internet và tôi thấy nếu vậy sẽ có độ trễ ngay cả các VPS này cùng trên một datacenter , hơn nữa là sẽ bị tính vào băng thông
May mắn thay với DigitalOcean chúng ta có thể kêt nối các VPS với nhau thông qua mạng nội bộ . và kết nối này không có internet nhé , như kết nối mạng LAN vậy
Khi tạo VPS mới phải nhớ tích vào Shared Private Networking
Chi tiết ở đây
Vậy là khỏi sợ vấn đề độ trễ và tính phí băng thông rồi nhé . chỉ tính phí BW cái VPS đầu tiên cài webserver nginx

NGINX với upstream module
Code:
upstream backend {

server php-fpm1.example.com:9000;

server php-fpm2.example.com:9000;

}

server {

location ~ .php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+.php)(/.+)$;

fastcgi_pass   backend;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME    $request_filename;

}

Cấu hình này có nghĩa là NGINX sẽ chia tải 50/50 cho 2 thằng PHP-FPM , Mỗi server sẽ nhận một lượng công việc bằng nhau , hai php-fpm này sẽ hoán đổi liên tục
Đầu tiên tôi gặp vấn đề với cookie liên tục bị out nick do sesion thay đổi liên tục qua 2 server PHP-FPM . sau đó tôi tìm hiểu và phải build thêm module nginx-sticky-module code.google.com/p/nginx-sticky-module/ lúc này thì đã ổn cấu hình như sau
Code:
upstream backend {

sticky;

server php-fpm1.example.com:9000;

server php-fpm2.example.com:9000;

}

server {

location ~ .php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+.php)(/.+)$;

fastcgi_pass   backend;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME    $request_filename;

}

Vậy là đã ổn rồi
Tiếp theo tôi nghĩ phải nghĩ cần đồng bộ hai cái php-fpm lại với nhau vì khi thành viên đính kèm file và avatar mỗi lần sẽ ở một server khác nhau , sau đó tôi chọn giải pháp đồng bộ . Dùng btsync labs.bittorrent.com/experiments/sync.html thấy cũng rất ổn và độ trễ rất thấp
Nhưng sau đó tôi lại thấy việc đồng bộ file đính kèm và avatar này không hay bằng giải pháp chỉ lưu file đính kèm và avatar trên một server thôi
Và cuối cùng tôi cài thêm php-fpm trên VPS thứ nhất ( cái cài nginx ý ) vì việc upload avatar và đính kèm không thực hiện liên tục do vậy cũng không đáng ngại vấn đề load cao
Và tôi chỉnh lại cấu hình như sau để chỉ đính kèm và avatar trên server php-fpm local
Code:
server {

location ~ .php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+.php)(/.+)$;

fastcgi_pass  backend;

  if ($args ~ avatar-upload) {

        fastcgi_pass 127.0.0.1:9000;

  }

  if ($args ~ attachments) {

       fastcgi_pass 127.0.0.1:9000;

  }

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME    $request_filename;
}
Tôi thấy giải pháp này khá hay vì khỏi phải đồng bộ giữa 2 server php-fpm kia làm gì cho mệt .

Cấu hình MYSQL
Điểm tôi thấy ngại nhất là cái VPS cuối cùng làm mysql server , nhưng khi chạy thử với site thật thì tôi rất ngạc nhiên , Bình thường tôi chạy ở server trước mysql lúc nào cũng chiếm RAM nhiều nhất và chiếm CPU nhiều thứ 2 sau PHP-FPM thì hiện tại chạy trên digitalocean tôi quan sát với RAM 512 là quá ổn với tôi , RAM chiếm 20% CPU chiếm 15% của VPS cuối này . có lẽ vấn đề chạy ít ram này là do server dùng SSD và trước đây vấn đề tôi gặp phải với database là load I/O cao thì cho tới thời điểm này tôi thấy cái databse của tôi tạm ổn . có lẽ do tôi thay đổi cấu hình mysql InnoDB với innodb_file_per_table sang kiểu ibdata1 lưu trữ database innoDB trên một file duy nhất đó mà lượng ram đã giảm đáng kể so với cấu hình trước đây . Chạy innoDB với innodb_file_per_table thì vấn đề về load I/O sẽ giảm hơn rất nhiều so với ibdata1 nhưng sẽ tốn RAM cực kỳ . Với SSD thì I/O không còn là vấn đề nữa do vậy tôi dùng cấu hình innoDB với ibdata1 sẽ là ổn , trước đây chạy trên server HDD thì sợ hãi cái ibdata1 luôn , rất hay bị nghẽn cổ chai .
Hiện tại tôi đang theo dõi các vấn đề phát sinh . nhưng nếu cứ ổn định như hiện tại thì theo tôi nghĩ mô hình load balancing nhỏ tiết kiệm chi phí này của tôi khá là hiệu quả
Tuy nhiên tôi sẽ chỉ thử nghiêm trong vài ngày cho đến khi hết mấy $ trong đó . nhưng cũng có thể tôi nạp thêm tiền và chạy luôn cái mô hình này nếu nó ổn định

Trên là vài kinh nghiêm chia sẻ cho các bạn hi vong có ích cho những ai đang cần và nếu quan tâm các bạn có thể đặt câu hỏi
Chúc bạn thành công!
 

Facebook Comments

Similar threads
Thread starter Title Forum Replies Date
F FSTORAGE – Giải pháp lưu trữ cho các doanh nghiệp mô hình SMEs Tin tức, sự kiện thường ngày 0
T Học lập trình với mô hình ưu việt Coding Bootcamp Tin tức CNTT 0
N Tổng quan các mô hình phát triển phần mềm Tin tức CNTT 1
B Các mô hình trong phát triển phần mềm Tin tức CNTT 0
N Tổng quan các mô hình phát triển phần mềm Tin tức CNTT 2
B Một số mô hình phát triển phần mềm Tin tức CNTT 0
N Một số mô hình phát triển phần mềm Tin tức CNTT 0
T Cách làm Xe Máy Mô Hình từ Bật Lửa hết gas Sách, truyện, tài liệu 0
Admin Share code game rắn săn mồi bằng C# (mô hình 3 lớp) C# / C++ 0
B Game Microcopter - Lái máy bay mô hình rất hay Crack, hack, mod, ghép game, ứng dụng 0
S Mỹ sắp thử mô hình máy bay siêu thanh Tin tức, sự kiện thường ngày 0
Admin [Fshare] phần mềm mô phỏng lái xe 2.0.0 mới nhất cho máy tính Phần mềm 0
T 50 ngân hàng sử chuỗi khối R3 ở 27 quốc gia để mô phỏng giao dịch Tin tức CNTT 0
B [Game Mô phỏng] Siegefall - Tựa game MMORPG nổi tiếng của Gameloft đã có mặt trên Windows Phone Windows phone 1
Admin Toshiba giới thiệu mô-đun camera kép cho thiết bị di động Tin tức CNTT 0
NhokLove Xin code filelist game kèm ảnh kết hợp mô tả Wap builder, wapego, xtgem, wen.ru, wapka, wap4 2
Admin Share code lấy kí 160 kí tự làm mô tả johncms Johncms 0
Admin Hướng dẫn thêm thẻ mô tả meta cho từng topic johncms Johncms 0
S Tự get mô tả cho johncms Johncms 0
S Bản đồ TQ mô tả Senkaku là lãnh thổ của Nhật Tin tức, sự kiện thường ngày 0
Admin Share filelist truyện có dấu, tự lấy mô tả, phân trang Wap builder, wapego, xtgem, wen.ru, wapka, wap4 1
C Shop quần áo mô phỏng chuyện ấy Trò chuyện linh tinh 0
S Phá đường dây làm bằng giả quy mô lớn Tin tức, sự kiện thường ngày 0
Admin Share filelist xtgem, tự động lấy mô tả bài viết Wap builder, wapego, xtgem, wen.ru, wapka, wap4 0
S HN: Hàng chục mô tô "dính đinh" trên phố Tin tức, sự kiện thường ngày 0
S Iran tập trận phòng không quy mô lớn Tin tức, sự kiện thường ngày 0
S S40 [Việt Hóa] Zing Speed - Mô phỏng lại VinaGame by Arena S40 0
S Nga mô phỏng vụ tai nạn máy bay Sukhoi Tin tức, sự kiện thường ngày 0
S Phá đường dây cá độ Euro quy mô lớn Tin tức, sự kiện thường ngày 1
S Chợ công nghệ Techmart 2012 có quy mô kỷ lục Tin khoa học, sản phẩm mới 0
katy Android MobiFone tặng gói truyền hình VTVCab 1 năm cho khách hàng thân thiết Điện thoại di động 4
Admin Bandicam 2024 - Phần mềm quay video màn hình tốt nhất Phần mềm 1
katy Android MobiFone ra mắt gói cước mới K+ Mobile trên truyền hình ClipTV Điện thoại di động 14
katy Android CF50 gói cước Combo "Truyền hình - Thoại - Data" siêu Tiết Kiệm từ MobiFone Tin tức, giới thiệu về ĐTDĐ 16
ketmartting Xiaomi POCO X3 NFC trình làng: cấu hình cực ngon Thơ, báo, tạp chí 0
tunglamed Đăng ký gói SVIP30 Data không giới hạn dung lượng - Xem truyền hình cực đã Điện thoại di động 2
Admin Bandicam Portable - Phần mềm quay video màn hình tốt nhất Phần mềm 0
cuongpro9x Kiếm tiền Youtube với Phim Hoạt Hình 2D làm bằng phần mềm Camtasia Studio Thiết kế đồ họa 1
theha02021982 Tác dụng không thể tin được của quần Gen định hình Elysyle hỗ trợ sức khỏe đến từ Nhật Bản Sức khỏe 0
Admin Hướng dẫn fix màn hình đen black screen phần mềm OBS Studio trên Windows 10 Sử dụng, chia sẻ, hỏi đáp 0
Admin Hướng dẫn đổi tên ứng dụng android hiển thị trên màn hình xamarin forms - Change app name on main screen Android, iOS 0
Admin Tình hình nhiễm virus corona trên toàn thế giới cập nhật liên tục và hoàn toàn tự động Tin tức, sự kiện thường ngày 25
T Chiếc iPhone 11 Pro đầu tiên tại Việt Nam gặp lỗi nháy màn hình Tin tức CNTT 0
N Hướng dẫn cắt ghép hình trái dâu bằng photoshop. Góc thành viên học tập 0
cuongpro9x Share Addon đóng dấu hình ảnh cho XenForo 2 Xenforo 1
Admin Hướng dẫn tạo con vật thật sự trên màn hình điện thoại bằng Animal 4D+ Thảo luận chung 0
dammechiase Hack Dream League Soccer Mới Nhất Đội Hình Argentina Vô Hạn Coins Trò chơi 0
dammechiase Hack Dream League Soccer Mới Nhất 2019 Đội Hình Pháp Full Chỉ Số Vô Hạn Coins Trò chơi 0
dammechiase Hack Dream League Soccer 2019 Mới Nhất-Đội Hình Arsenal Vô Hạn Coins, Buff Full Chỉ Số 100 Toàn Đội Trò chơi 0
dammechiase Hack Dream League Soccer 2019 Mới Nhất -Hướng Dẫn Mod Đội Hình Việt Nam AFF CUP Buff Chỉ Số Dream League Soccer 2019 Trò chơi 0

Similar threads

New posts New threads New resources

Back
Top