Thứ sáu, 16/05/2014 | 00:00 GMT+7

Cách sử dụng HAProxy làm bộ cân bằng tải lớp 4 cho server ứng dụng WordPress trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ dạy bạn cách sử dụng HAProxy làm bộ cân bằng tải lớp 4 cho các server WordPress của bạn - đặc biệt là cấp ứng dụng web. Cân bằng tải các server ứng dụng bổ sung khả năng dự phòng cho cài đặt của bạn, giúp tăng độ tin cậy trong trường hợp server gặp sự cố hoặc sự cố mạng và trải đều tải trên nhiều server để tăng hiệu suất đọc. Ta giả định cài đặt của bạn bao gồm một server ứng dụng WordPress kết nối với một server database MySQL riêng biệt (xem yêu cầu để có hướng dẫn về cách cài đặt ).

Cân bằng tải lớp 4 phù hợp với trang web nếu bạn chỉ đang chạy một ứng dụng web server duy nhất. Nếu môi trường của bạn phức tạp hơn (ví dụ: bạn muốn chạy WordPress và một web server tĩnh trên các server riêng biệt, với một điểm nhập duy nhất), bạn cần xem xét cân bằng tải Lớp ứng dụng (Lớp 7).

Hướng dẫn này được viết bằng WordPress làm ví dụ, nhưng các khái niệm chung của nó được dùng để cân bằng tải các ứng dụng web không trạng thái khác.

Yêu cầu

Trước khi tiếp tục với hướng dẫn này, bạn nên hoàn thành hướng dẫn về cách cài đặt trang web WordPress với server database riêng (hoặc có cài đặt tương tự): Cách cài đặt database từ xa để tối ưu hóa hiệu suất trang web với MySQL

Sau khi làm theo hướng dẫn đó để cài đặt WordPress trên các server database và ứng dụng web riêng biệt, bạn nên có hai VPS. Vì ta sẽ xử lý một số VPS, vì mục đích tham khảo, ta sẽ gọi hai VPS hiện có của bạn như sau:

  • wordpress-1 : Server ứng dụng web WordPress của bạn
  • mysql-1 : Server MySQL của bạn cho WordPress

Chế độ xem trừu tượng về môi trường của bạn hiện trông giống như sau:

 Server  database  và ứng dụng WordPress

Ngoài môi trường hiện tại của bạn, ta sẽ yêu cầu hai VPS bổ sung trong hướng dẫn này. Ta sẽ gọi cho họ:

  • wordpress-2 : Server ứng dụng web WordPress thứ hai của bạn
  • haproxy-www : Server HAProxy của bạn, để cân bằng tải

Nếu bạn không quen với các khái niệm hoặc thuật ngữ cân bằng tải cơ bản, như cân bằng tải lớp 4 hoặc backend hoặc ACL , thì đây là bài viết giải thích những điều cơ bản: Giới thiệu về HAProxy và các khái niệm cân bằng tải .

Mục tiêu của ta

Đến cuối hướng dẫn này, ta muốn có một môi trường giống như sau:

Ứng dụng web cân bằng tải HAProxy

Nghĩa là, user của bạn sẽ truy cập trang web WordPress của bạn bằng cách đi tới Server HAProxy của bạn, server này sẽ chuyển tiếp họ đến Server ứng dụng WordPress cân bằng tải của bạn theo kiểu vòng tròn. Hai của bạn (hoặc nhiều hơn, nếu bạn muốn) sẽ cùng truy cập vào database MySQL của bạn.

Ảnh chụp nhanh Môi trường hiện tại của bạn

Tùy chọn : Trước khi tiếp tục với hướng dẫn này, bạn cần tạo ảnh chụp nhanh của môi trường hiện tại của bạn . Chụp nhanh phục vụ hai mục đích trong hướng dẫn này:

  1. Để trở lại môi trường làm việc nếu mắc lỗi
  2. Để thực hiện sao chép một lần server root , loại bỏ nhu cầu cài đặt và cấu hình lại PHP và Nginx

Lưu ý: Bắt đầu từ tháng 10 năm 2016, các ảnh chụp nhanh có giá 0,05 đô la mỗi gigabyte mỗi tháng, dựa trên dung lượng được sử dụng trong hệ thống file .

Chụp nhanh các VPS wordpress-1mysql-1 của bạn .

Bây giờ ta đã có ảnh chụp nhanh, ta đã sẵn sàng chuyển sang xây dựng phần còn lại của môi trường của ta .

Tạo server ứng dụng web thứ hai của bạn

Bây giờ ta cần tạo một VPS thứ hai sẽ chia sẻ tải với server ứng dụng web ban đầu của ta . Có hai lựa chọn cho việc này:

  1. Tạo một VPS mới từ ảnh chụp nhanh bạn đã lấy của VPS root , wordpress-1
  2. Tạo một VPS mới từ đầu và cài đặt thủ công với phần mềm và cấu hình tương tự như wordpress-1

Với một trong hai phương pháp, hãy đảm bảo chọn tùy chọn Mạng riêng nếu có. Mạng riêng được khuyến khích cho tất cả các VPS được sử dụng trong hướng dẫn này.

Nếu bạn không có tùy chọn mạng riêng tư, hãy thay thế địa chỉ IP riêng bằng địa chỉ IP công cộng của VPS của bạn. Lưu ý việc sử dụng địa chỉ IP công cộng khi bạn đang truyền dữ liệu nhạy cảm, chẳng hạn như password database chưa được mã hóa giữa ứng dụng của bạn và server database , không phải là cách tốt vì thông tin đó sẽ truyền qua internet công cộng.

Tùy chọn 1: Tạo VPS mới với Snapshot

Tạo một VPS mới có tên là wordpress-2 , sử dụng ảnh chụp nhanh bạn đã chụp từ wordpress-1 .

Nếu bạn đã chọn phương pháp này, hãy bỏ qua “Tùy chọn 2” để đến phần “Đồng bộ hóa file ứng dụng web”.

Tùy chọn 2: Tạo VPS mới từ Scratch

Đây là một lựa chọn thay thế cho “Lựa chọn 1”

Nếu bạn muốn cài đặt server wordpress-2 từ đầu, thay vì sử dụng ảnh chụp nhanh của wordpress-1 , hãy đảm bảo bạn cài đặt cùng một phần mềm. Tham khảo phần Cài đặt web server của tài liệu tiên quyết nếu bạn không nhớ cách bạn đã cài đặt và cấu hình server WordPress ban đầu của bạn .

Để tham khảo nhanh, đây là danh sách các phần mềm và file cấu hình thích hợp mà bạn cần cài đặt hoặc sao chép:

Phần mềm:

  • Máy khách MySQL
  • Nginx
  • PHP

Để cài đặt phần mềm này, hãy chạy phần sau trên server wordpress-2 của bạn:

sudo apt-get update sudo apt-get install mysql-client sudo apt-get install nginx php5-fpm php5-mysql 

Tệp cấu hình cần được chỉnh sửa hoặc tạo để trùng với server ứng dụng ban đầu của bạn:

  • /etc/php5/fpm/php.ini
  • /etc/php5/fpm/pool.d/ www.conf
  • /etc/nginx/sites-available/example.com
  • /etc/nginx/sites-enabled/example.com

Đừng quên khởi động lại PHP và Nginx khi bạn đã hoàn tất việc cấu hình phần mềm, bằng các lệnh sau:

sudo service php5-fpm restart sudo service nginx restart 

Sau khi bạn hoàn tất cài đặt và cấu hình server ứng dụng mới của bạn , ta cần đồng bộ hóa các file ứng dụng WordPress.

Đồng bộ hóa các file ứng dụng web

Trước khi ứng dụng có thể được cân bằng tải, ta cần đảm bảo các file ứng dụng web của server mới được đồng bộ hóa với server WordPress ban đầu của bạn. Vị trí của các file này phụ thuộc vào nơi bạn đã cài đặt WordPress và một số file khác. Ngoài các file php mà WordPress cần chạy, các file được tải lên và các plugin được cài đặt thông qua giao diện WordPress cần được đồng bộ hóa khi chúng được tải lên hoặc cài đặt. Trong tài liệu tiên quyết, ta đã cài đặt WordPress trong /var/www/example.com – ta sẽ sử dụng vị trí này cho tất cả các ví dụ của ta , nhưng bạn cần thay thế vị trí này bằng đường dẫn cài đặt WordPress thực của bạn .

Có một số cách để đồng bộ hóa file giữa các server – NFS hoặc glusterFS đều là những lựa chọn phù hợp. Ta sẽ sử dụng glusterFS để đáp ứng nhu cầu đồng bộ hóa của bạn vì nó cho phép mỗi server ứng dụng lưu trữ bản sao của các file ứng dụng, đồng thời duy trì tính nhất quán trên toàn hệ thống file . Đây là sơ đồ khái niệm về bộ nhớ dùng chung mục tiêu của ta :

glusterFS  Dung lượng  Chia sẻ

Nếu bạn không quen với bất kỳ thuật ngữ glusterFS nào được sử dụng trong phần này, vui lòng tham khảo Hướng dẫn GlusterFS này , dựa trên phần này.

Lưu ý: Các phần phụ sau đây thường xuyên chuyển giữa các server wordpress-1wordpress-2 . Đảm bảo chạy các lệnh trên các server thích hợp, nếu không bạn sẽ gặp sự cố!

Chỉnh sửa file server

Lưu ý: Nếu bạn có DNS nội bộ và nó có bản ghi địa chỉ IP riêng của VPS của bạn, vui lòng bỏ qua bước này và thay thế các tên server đó cho phần còn lại của các lệnh và cấu hình cài đặt glusterFS.

Nếu không, trên các VPS wordpress-1 và wordpress-2:

Chỉnh sửa / etc / hosts:

sudo vi /etc/hosts 

Thêm hai dòng sau, thay thế các từ được đánh dấu bằng địa chỉ IP tương ứng của server ứng dụng của bạn:

<pre>
<span class = “highlight”> wordpress 1 IP riêng </span> wordpress-1
<span class = “highlight”>
IP riêng của wordpress 2 </span> wordpress-2
</pre>

Lưu và thoát.

Cài đặt GlusterFS và cấu hình một ổ đĩa sao chép

Trên VPS wordpress-1wordpress-2 :

Sử dụng apt-get để cài đặt phần mềm server glusterFS:

sudo apt-get install glusterfs-server 

Trên wordpress-1 , chạy lệnh sau để ngang hàng với wordpress-2 của bạn:

sudo gluster peer probe wordpress-2 

Trên wordpress-2 , chạy lệnh sau để ngang hàng với wordpress-1 :

sudo gluster peer probe wordpress-1 

Trên wordpress-1 và wordpress-2 , để tạo vị trí nơi glusterFS sẽ lưu trữ các file mà nó quản lý, hãy chạy:

sudo mkdir /gluster-storage 

Trên wordpress-1, để tạo ra một dung lượng GlusterFS sao chép gọi là volume1 , mà sẽ lưu trữ dữ liệu của nó trong /gluster-storage trên cả các server ứng dụng của bạn, hãy chạy:

<pre>
sudo gluster volume create <span class = “highlight”> volume1 </span> replica 2 transport tcp wordpress-1: <span class = “highlight”> / gluster-storage </span> wordpress-2: <span class = “ lực highlight ”> / gluster-storage </span>
</pre>
<pre>
Đầu ra mong đợi: volume tạo: volume1: thành công: vui lòng khởi động volume để truy cập dữ liệu
</pre>

Trên wordpress-1 , chạy lệnh sau để bắt đầu file glusterFS mà bạn vừa tạo, volume1 :

<pre>
sudo gluster volume start <span class = “highlight”> volume1 </span>
</pre>
<pre>
Đầu ra mong đợi: tập bắt đầu: tập 1: thành công
</pre>

Trên wordpress-1 , nếu bạn muốn xem thông tin về ổ đĩa glusterFS bạn vừa tạo và bắt đầu, hãy chạy:

sudo gluster volume info 

Bạn sẽ thấy rằng bạn có hai "viên gạch" glusterFS, một cho mỗi server WordPress.

Bây giờ ta có một ổ đĩa glusterFS đang chạy, hãy mount nó để ta có thể sử dụng nó như một hệ thống file sao chép.

Mount bộ nhớ dùng chung

Trước tiên, hãy mount hệ thống file trên wordpress-1.

Trên wordpress-1 , hãy chỉnh sửa fstab để hệ thống file được chia sẻ của ta sẽ mount khi khởi động:

sudo vi /etc/fstab 

Thêm dòng sau vào cuối file để sử dụng /storage-pool làm điểm mount của ta . Vui lòng thay thế điều này (ở đây và cho phần còn lại của cài đặt glusterFS này):

<pre>
wordpress-1: <span class = “highlight”> / volume1 </span> <span class = “highlight”> / Storage-pool </span> mặc định glusterfs, _netdev 0 0
</pre>

Lưu và thoát.

Trên wordpress-1 , bây giờ bạn có thể gắn ổ đĩa glusterFS vào hệ thống file /storage_pool :

<pre>
sudo mkdir <span class = “highlight”> / storage-pool </span>
sudo mount <span class = “highlight”> / storage-pool </span>
</pre>

Điều đó mount dung lượng được chia sẻ, / storage-pool, trên VPS wordpress-1 của bạn. Bạn có thể chạy df -h và nó sẽ được liệt kê là một hệ thống file được mount . Tiếp theo, ta sẽ thực hiện theo một quy trình tương tự để mount bộ nhớ dùng chung trên wordpress-2 .

Trên wordpress-2 , hãy chỉnh sửa fstab để hệ thống file được chia sẻ của ta sẽ mount khi khởi động:

sudo vi /etc/fstab 

Thêm dòng sau vào cuối file để sử dụng /storage-pool làm điểm mount của ta . Nếu bạn đã sử dụng một giá trị khác, hãy đảm bảo bạn thay thế giá trị đó tại đây:

<pre>
wordpress-2: <span class = “highlight”> / volume1 </span> <span class = “highlight”> / storage-pool </span> mặc định glusterfs, _netdev 0 0
</pre>

Trên wordpress-2 , bây giờ bạn có thể gắn ổ đĩa glusterFS vào hệ thống file /storage_pool :

sudo mkdir /storage-pool sudo mount /storage-pool 

Như vậy, mọi file được tạo, sửa đổi hoặc xóa trong hệ thống file /storage-pool sẽ được đồng bộ hóa trên cả hai server , ngay cả khi một trong các server tạm thời ngừng hoạt động.

Di chuyển file WordPress sang bộ nhớ dùng chung

Bước tiếp theo là di chuyển các file WordPress của wordpress-1 vào bộ nhớ dùng chung. Vui lòng thay thế các từ được đánh dấu bằng các giá trị của bạn . /var/www/example.com đại diện cho nơi đặt các file WordPress của bạn (và nơi Nginx đang tìm kiếm các file ) và bản thân example.com chỉ đơn giản là tên cơ sở của folder .

Trên wordpress-1 , hãy chạy các lệnh sau để di chuyển các file ứng dụng WordPress của bạn sang hệ thống file được chia sẻ của bạn, /storage-pool :

<pre>
sudo mv <span class = “highlight”> / var / www / example.com </span> / storage-pool /
sudo chown www-data: www-data / storage-pool / <span class = “highlight”> example.com </span>
</pre>

Tiếp theo, bạn cần tạo một softlink , trỏ đến các file WordPress trên hệ thống file được chia sẻ, nơi các file WordPress của bạn ban đầu được lưu trữ bằng lệnh:

<pre>
sudo ln -s / storage-pool / <span class = “highlight”> example.com </span> <span class = “highlight”> / var / www / example.com </span>
</pre>

Bây giờ các file WordPress của bạn được đặt trên hệ thống file được chia sẻ, /storage-pool và chúng vẫn có thể truy cập được vào Nginx thông qua vị trí ban đầu của chúng, /var/www/example.com .

Hướng server ứng dụng mới đến bộ nhớ dùng chung

Bước tiếp theo là tạo một softlink trên server ứng dụng web mới của ta trỏ đến các file WordPress trên hệ thống file được chia sẻ.

Nếu bạn đã tạo wordpress-2 bằng tùy chọn snapshot , hãy chạy các lệnh sau trên wordpress-2 :

<pre>
sudo rm <span class = “highlight”> / var / www / example.com </span>
sudo ln -s / storage-pool / <span class = “highlight”> example.com </span> <span class = “highlight”> / var / www / example.com </span>
</pre>

Nếu bạn đã tạo wordpress-2 * từ đầu , hãy chạy các lệnh sau ** trên wordpress-2 :

<pre>
sudo mkdir -p <span class = “highlight”> / var / www </span>
sudo ln -s / storage-pool / <span class = “highlight”> example.com </span> <span class = “highlight”> / var / www / example.com </span>
</pre>

Đó là nó để đồng bộ hóa các file ứng dụng WordPress! Bước tiếp theo là cấp cho server ứng dụng mới của ta , wordpress-2 , truy cập vào database .

Tạo user database mới

Vì MySQL xác định user theo tên user và server nguồn, ta cần tạo một user wordpressuser mới có thể kết nối từ server ứng dụng mới của ta , wordpress-2 .

Trên database VPS của bạn, mysql-1 , hãy kết nối với console MySQL:

mysql -u root -p 

Trong các câu lệnh MySQL sau, hãy thay thế tất cả các từ được đánh dấu bằng bất kỳ từ nào phù hợp với môi trường của bạn:

  • wordpressuser : user MySQL WordPress của bạn. Đảm bảo nó giống với tên user đã có
  • wordpress 2 private_IP : IP riêng của VPS wordpress-2 của bạn
  • mật khẩu : mật khẩu của user MySQL WordPress của bạn. Đảm bảo rằng nó giống với password đã có (và đó là một password tốt!)

Chạy câu lệnh này, tạo một user MySQL có thể kết nối từ server WordPress mới của bạn, wordpress-2 :

<pre>
TẠO NGƯỜI DÙNG '<span class = "highlight"> wordpressuser </span>' @ '<span class = "highlight"> wordpress 2 private_IP </span>' IDENTIFIED BY '<span class = “highlight”> password </ span > ';
</pre>

, hãy thay thế các giá trị của bạn cho wordpressuser , wordpress_2_private_IP và nếu cơ sở dữ liệu của bạn không có tên là “wordpress”, hãy đảm bảo thay đổi cả giá trị đó.

<pre>
CẤP CHỌN, XÓA, CHÈN, CẬP NHẬT BẬT <span class = “highlight”> wordpress </span>. * ĐẾN '<span class = “highlight”> wordpressuser </span>' @ '<span class = “highlight”> wordpress 2 private_IP </span> ';
QUYỀN RIÊNG TƯ FLUSH;
</pre>

Bây giờ server ứng dụng web thứ hai của bạn, wordpress-2 , có thể đăng nhập vào MySQL trên server database của bạn, mysql-1 .

Chưa cân bằng tải

Lưu ý có hai server ứng dụng web đang chạy nhưng ứng dụng không được cân bằng tải vì mỗi server phải được truy cập qua Địa chỉ IP công cộng tương ứng của chúng. Ta muốn có thể truy cập ứng dụng qua cùng một URL, chẳng hạn như http://example.com/ và cân bằng lưu lượng giữa hai server ứng dụng web. Đây là nơi HAProxy xuất hiện.

Cài đặt HAProxy

Tạo một VPS mới với Mạng riêng. Đối với hướng dẫn này, ta sẽ gọi nó là haproxy-www .

Trong VPS haproxy-www của ta , hãy cài đặt HAProxy với apt-get :

sudo apt-get update sudo apt-get install haproxy 

Ta cần bật tập lệnh HAProxy init, vì vậy HAProxy sẽ bắt đầu và dừng cùng với VPS của bạn.

sudo vi /etc/default/haproxy 

Thay đổi giá trị của ENABLED thành 1 để kích hoạt tập lệnh HAProxy init:

ENABLED=1 

Lưu và thoát. Bây giờ HAProxy sẽ bắt đầu và dừng với VPS của bạn. Ngoài ra, bây giờ bạn có thể sử dụng lệnh service để kiểm soát HAProxy của bạn . Hãy kiểm tra xem nó có đang chạy không:

user@haproxy-www:/etc/init.d$ sudo service haproxy status haproxy not running. 

Nó không chạy. Điều đó tốt thôi, vì nó cần được cấu hình trước khi ta có thể sử dụng nó. Tiếp theo hãy cấu hình HAProxy cho môi trường của ta .

Cấu hình HAProxy

Tệp cấu hình của HAProxy được chia thành hai phần chính:

  • Global : đặt các thông số cho toàn bộ quá trình
  • Proxy : bao gồm các tham số mặc định , nghe , giao diện user backend

, nếu bạn không quen với HAProxy hoặc các khái niệm và thuật ngữ cân bằng tải cơ bản, vui lòng tham khảo liên kết này: Giới thiệu về HAProxy và các khái niệm cân bằng tải

Cấu hình HAProxy: Global

Tất cả cấu hình HAProxy phải được thực hiện trên VPS HAProxy, haproxy-www của bạn .

Đầu tiên, hãy tạo một bản sao của file haproxy.cfg mặc định:

cd /etc/haproxy; sudo cp haproxy.cfg haproxy.cfg.orig 

Bây giờ hãy mở haproxy.cfg trong editor :

sudo vi /etc/haproxy/haproxy.cfg 

Bạn sẽ thấy rằng có hai phần đã được xác định: global mặc định . Đầu tiên, ta sẽ thực hiện một vài thay đổi đối với một số thông số mặc định.

Theo mặc định , hãy tìm các dòng sau:

mode    http option  httplog 

Thay thế từ “http” bằng “tcp trong cả hai trường hợp:

mode    tcp option  tcplog 

Chọn tcp làm chế độ cấu hình HAProxy để thực hiện cân bằng tải lớp 4. Trong trường hợp của ta , điều này nghĩa là tất cả lưu lượng đến trên một địa chỉ IP và cổng cụ thể sẽ được chuyển tiếp đến cùng một phần backend . Nếu bạn không quen với khái niệm này, vui lòng đọc phần Các loại cân bằng tải trong Giới thiệu về HAProxy của ta .

Chưa đóng file cấu hình! Ta sẽ thêm cấu hình proxy tiếp theo.

Cấu hình HAProxy: Proxy

Điều đầu tiên ta muốn thêm là một giao diện user . Đối với cài đặt cân bằng tải lớp 4 cơ bản, giao diện user sẽ lắng nghe lưu lượng truy cập trên một địa chỉ IP và cổng cụ thể, sau đó chuyển tiếp lưu lượng đến đến một phần backend được chỉ định.

Ở cuối file , hãy thêm giao diện user của ta , www . Đảm bảo thay thế haproxy_www_public_IP bằng IP công cộng của VPS haproxy-www của bạn:

<pre>
giao diện user www
bind <span class = "highlight"> haproxy www public IP </span>: 80
backend mặc định wordpress-backend
</pre>

Dưới đây là giải thích về ý nghĩa của mỗi dòng trong đoạn mã cấu hình giao diện user ở trên:

  • giao diện user www : chỉ định giao diện user có tên “www”, vì ta sẽ sử dụng giao diện này để xử lý lưu lượng truy cập www đến
  • bind haproxy_www_public_IP: 80 : thay thế haproxy_www_public_IP bằng địa chỉ IP công khai của haproxy-www. Điều này cho HAProxy biết rằng giao diện user này sẽ xử lý lưu lượng mạng đến trên địa chỉ IP và cổng này
  • default_backend wordpress-backend : điều này chỉ định rằng tất cả lưu lượng của giao diện user này sẽ được chuyển tiếp đến wordpress-backend , ta sẽ xác định trong bước tiếp theo

Sau khi bạn hoàn tất cấu hình giao diện user , hãy tiếp tục thêm phần backend bằng cách thêm các dòng sau. Đảm bảo thay thế các từ được đánh dấu bằng các giá trị thích hợp:

<pre>
backend wordpress-backend
cân bằng roundrobin
chế độ tcp
server wordpress-1 <span class = “highlight”> wordpress 1 IP riêng </span>: 80 kiểm tra
server wordpress-2 <span class = “highlight”>
IP riêng của wordpress 2 </span>: 80 kiểm tra
</pre>

Dưới đây là giải thích về ý nghĩa của mỗi dòng trong đoạn mã cấu hình backend ở trên:

  • backend wordpress-backend : chỉ định một backend có tên là “wordpress-backend”
  • balance roundrobin : chỉ định rằng chương trình backend này sẽ sử dụng thuật toán cân bằng tải "roundrobin"
  • mode tcp : chỉ định rằng chương trình backend này sẽ sử dụng “tcp” hoặc proxy lớp 4
  • server wordpress-1… : chỉ định server backend có tên “wordpress-1”, IP riêng (mà bạn phải thay thế) và cổng mà nó đang nghe, trong trường hợp này là 80 . Tùy chọn "kiểm tra" làm cho bộ cân bằng tải thực hiện định kỳ kiểm tra tình trạng trên server này
  • server wordpress-2… : điều này chỉ định một server backend có tên “wordpress-2”

Bây giờ lưu và thoát. HAProxy hiện đã sẵn sàng để bắt đầu, nhưng trước tiên hãy bật tính năng ghi log .

Bật ghi log HAProxy

Kích hoạt đăng nhập HAProxy rất đơn giản. Trước tiên, hãy chỉnh sửa file rsyslog.conf:

sudo vi /etc/rsyslog.conf 

Sau đó, tìm hai dòng sau và bỏ ghi chú chúng để kích hoạt nhận log hệ thống UDP. Nó sẽ giống như sau khi bạn hoàn tất:

$ModLoad imudp $UDPServerRun 514 $UDPServerAddress 127.0.0.1 

Bây giờ khởi động lại rsyslog để kích hoạt cấu hình mới:

sudo service rsyslog restart 

Ghi log HAProxy hiện đã được bật! Tệp log sẽ được tạo tại /var/log/haproxy.log sau khi HAProxy được khởi động.

Khởi động HAProxy và PHP / Nginx

Trên haproxy-www , khởi động HAProxy để thay đổi cấu hình của bạn có hiệu lực:

sudo service haproxy restart 

Tùy thuộc vào cách bạn cài đặt server ứng dụng mới của bạn , bạn có thể cần khởi động lại ứng dụng WordPress của bạn bằng cách khởi động lại PHP và Nginx.

Trên wordpress-2 , khởi động lại PHP và Nginx bằng cách chạy các lệnh sau:

sudo service php5-fpm restart sudo service nginx restart 

Bây giờ WordPress sẽ chạy trên cả hai server ứng dụng của bạn và chúng được cân bằng tải. Nhưng vẫn còn một thay đổi cấu hình cuối cùng được thực hiện.

Cập nhật cấu hình WordPress

Bây giờ URL của ứng dụng WordPress của bạn đã thay đổi, ta phải cập nhật một vài cài đặt trong WordPress.

Trên một trong hai server WordPress , hãy chỉnh sửa wp-config.php của bạn. Nó nằm ở nơi bạn đã cài đặt WordPress (trong hướng dẫn, nó đã được cài đặt trong /var/www/example.com nhưng cài đặt của bạn có thể khác):

<pre>
cd <span class = “highlight”> / var / www / example.com </span>; sudo vi wp-config.php
</pre>

Tìm dòng gần đầu cho biết define('DB_NAME', 'wordpress'); và thêm các dòng sau vào trên nó, thay thế các giá trị được đánh dấu,:

<pre>
xác định ('WP SITEURL', '<span class = “highlight”> http: // haproxy www public IP </span>');
xác định ('WP HOME', '<span class = "highlight"> http: // haproxy www public IP </span>');
</pre>

Lưu và thoát. Như vậy, các URL WordPress được cấu hình để trỏ đến trình cân bằng tải của bạn thay vì chỉ server WordPress ban đầu của bạn, điều này sẽ hoạt động khi bạn thử và truy cập Trang tổng quan wp-admin.

Hoàn tất cân bằng tải!

Server ứng dụng web của bạn hiện đã được cân bằng tải! User của bạn hiện có thể truy cập WordPress cân bằng tải thông qua địa chỉ IP công khai hoặc domain của trình cân bằng tải, haproxy-www !

Kết luận

Như vậy, lượng user của bạn sẽ được dàn trải giữa hai server WordPress của bạn. Ngoài ra, nếu một trong các server ứng dụng WordPress của bạn gặp sự cố, trang web sẽ vẫn có sẵn vì server WordPress khác sẽ được chuyển tiếp tất cả lưu lượng truy cập!

Với cài đặt này, hãy nhớ rằng server cân bằng tải HAProxy, haproxy-www và server database của bạn, mysql-1 , cần phải chạy để trang web hoạt động bình thường.

<div class = “author”> Bởi Mitchell Anicas </div>


Tags:

Các tin liên quan

Cách sử dụng kpcli để quản lý tệp mật khẩu KeePass2 trên server Ubuntu 14.04
2014-05-16
Cách khởi chạy trang web của bạn trên server Ubuntu 14.04 mới với LAMP, SFTP và DNS
2014-05-13
Cách cài đặt Node.js trên server Ubuntu 14.04
2014-05-12
Cách bảo vệ SSH bằng Fail2Ban trên Ubuntu 14.04
2014-05-07
Cách bảo vệ SSH bằng Fail2Ban trên Ubuntu 14.04
2014-05-07
Cách cài đặt ISPConfig3 trên server Ubuntu 14.04
2014-05-05
Cách cài đặt và sử dụng Memcache trên Ubuntu 14.04
2014-05-01
Cách thiết lập NFS Mount trên Ubuntu 14.04
2014-04-30
Cách cài đặt và cấu hình Postfix trên Ubuntu 14.04
2014-04-29
Cách cài đặt và cấu hình Postfix trên Ubuntu 14.04
2014-04-29