Thứ năm, 27/02/2014 | 00:00 GMT+7

Cách mở rộng quy mô theo chiều ngang một ứng dụng Laravel 4 với database PostgreSQL

Có hai phương pháp để mở rộng ứng dụng, dịch vụ, server , v.v. Phương pháp đầu tiên, mở rộng theo chiều dọc, yêu cầu nhiều tài nguyên hơn cho một máy. Thứ hai, tỷ lệ theo chiều ngang, yêu cầu sự tách biệt chức năng để tạo ra một bộ phận lắp ráp linh kiện hơn.


Ví dụ, một máy có lỗi bộ nhớ trong log hệ thống không? Nó có thể hợp lý nếu chỉ thêm nhiều RAM hoặc một file swap . Tuy nhiên, giả sử server database đang phát triển với số lượng lớn các mục nhập và riêng web server đang bắt đầu tăng lưu lượng truy cập - một ý tưởng tốt hơn có thể là cài đặt một môi trường dễ kiểm soát hơn (chưa kể chi phí hiệu quả hơn). Để làm như vậy, key tách web server và server database thành các máy riêng biệt. Đó là chia tỷ lệ theo chiều ngang.

Yêu cầu


  • Hai server mỗi server đang chạy Debian 7. Mỗi VPS phải hoàn thành hướng dẫn Cài đặt Server Ban đầu .

  • Hiểu biết cơ bản về các lệnh Linux và những gì chúng thực hiện. Xem phần Giới thiệu Cơ bản về Linux để có điểm khởi đầu tốt.

  • Bạn cần phải cài đặt thành công Laravel trên một trong các server . Hướng dẫn này sẽ hoạt động cho NGINX + Laravel 4 (bỏ qua bước Kết thúc ): Laravel + Nginx

Không cài đặt database trên cùng một server ảo với cài đặt Laravel của bạn

Để đơn giản, ta sẽ đề cập đến server đầu tiên có cài đặt Laravel và Nginx là server Laravel với IP là 192.0.2.5. Server thứ hai với cài đặt PostgreSQL sẽ được gọi là server database với IP là 192.0.2.1.

Chuẩn bị database


Horizontal partitioning là một khái niệm khá đơn giản có thể trở nên khá phức tạp khi bạn bắt đầu nghĩ về các chủ đề nâng cao hơn như sao chép database và cân bằng tải. Tuy nhiên, ta sẽ chỉ đề cập đến sự phân tách cơ bản của các dịch vụ: giao diện user của web server và backend database . May mắn là PostgreSQL và Laravel làm cho quá trình này trở nên khá đơn giản.

Trước tiên, ta cần cài đặt PostgreSQL trên server database của ta :

sudo apt-get install postgresql

Tiếp theo, ta phải tạo một database và user trong server sẽ có quyền thích hợp để tương tác với database . Để làm như vậy, ta phải đăng nhập vào server PostgreSQL:

sudo -u postgres psql

Đầu tiên, hãy tạo user database :

CREATE USER databaseuser WITH PASSWORD 'password'; GRANT CREATE ON SCHEMA public TO databaseuser; GRANT USAGE ON SCHEMA public TO databaseuser; 

Sau đó, tạo database với user là chủ sở hữu và sau đó thoát khỏi server :

CREATE DATABASE mydatabase WITH OWNER databaseuser; \q  

Tiếp theo, server database cần biết rằng server Laravel kết nối với nó là ổn. PostgreSQL có một file xác thực client giúp việc này trở nên cực kỳ dễ dàng.

sudo nano /etc/postgresql/9.1/main/pg_hba.conf

Thêm một dòng bao gồm kết nối, tên database , user database , địa chỉ được chấp nhận và phương thức kết nối:

# IPv4 local connections: host  mydatabase   databaseuser   192.0.2.5/32   md5 

Lưu và thoát, sau đó mở postgresql.conf và tìm dòng có nội dung “nghe_addresses = 'localhost'”.

sudo nano /etc/postgresql/9.1/main/postgresql.conf

listen_addresses = '192.0.2.1' 

Bạn cũng có thể thay đổi giá trị này thành giá trị chấp nhận bất kỳ địa chỉ nào:

listen_addresses = '*' 

Lưu, thoát và khởi động lại server PostgreSQL:

sudo service postgresql restart

Cấu hình Laravel


Điều đầu tiên cần phải làm là cung cấp cho PHP một số kiến thức về cách làm việc với server PostgreSQL. Làm như vậy bằng cách cài đặt phần mở rộng php5-pgsql.

sudo apt-get install php5-pgsql
sudo service php5-fpm restart

Tiếp theo, ta cần cho Laravel biết server database của ta nằm ở đâu và cách truy cập nó. Nếu bạn đã làm theo hướng dẫn NGINX + Laravel, thì Laravel sẽ được cài đặt tại /var/www/laravel .

sudo nano /var/www/laravel/app/config/database.php

Đầu tiên, hãy sử dụng Laravel đó là trình điều khiển PostgreSQL:

'default' => 'pgsql', 

Tiếp theo, hãy cài đặt thông tin về server PostgreSQL.

'pgsql' => array(       'driver'   => 'pgsql',       'host'     => '192.0.2.1',       'database' => 'mydatabase',       'username' => 'databaseuser',       'password' => 'password',       'charset'  => 'utf8',       'prefix'   => '',       'schema'   => 'public',     ), 

Lưu và thoát.

Kiểm tra kết nối


Để kiểm tra kết nối này, hãy chạy chuyển từ dòng lệnh sẽ giúp xây dựng các bảng database của ta .

Lưu ý: Migrations không phải là một gói bổ sung được cài đặt. Nó đi kèm với laravel và đó là một tập hợp các lệnh để tương tác với database của ta .

Đầu tiên hãy nhập folder ứng dụng nơi đặt nghệ nhân.

cd /var/www/laravel

Tuyệt quá! Bây giờ đã đến lúc cài đặt chuyển đổi và xem liệu kết nối database của ta có hoạt động hay không.

php artisan migrate:install

Nếu lệnh này chạy thành công mà không có lỗi, bạn sẽ thấy một bảng mới trong database của bạn được gọi là di chuyển .

Kết thúc nó


Như bạn thấy , việc chia tách các server khá đơn giản. Bằng cách kết hợp mở rộng quy mô ngang với mở rộng quy mô dọc, một sysadmin có thể đạt được sự tách biệt các dịch vụ và tăng hiệu suất. Thậm chí tốt hơn những phương pháp này yêu cầu 0 phần mềm bổ sung.

<div class = “author”> Gửi bởi: <a href=osystemhttps://twitter.com/alexkavonosystem> Alex Kavon </div>


Tags:

Các tin liên quan

Mở rộng quy mô Ruby on Rails: Thiết lập một server PostgreSQL chuyên dụng (Phần 3)
2014-02-27
Cách thiết lập bản sao Master Slave trên PostgreSQL trên VPS Ubuntu 12.04
2013-10-29
Cách cài đặt và sử dụng PostgreSQL trên CentOS 6
2013-10-23
Cách backup database PostgreSQL trên VPS Ubuntu
2013-08-28
Cách bảo mật PostgreSQL trên VPS Ubuntu
2013-08-22
cách sử dụng role và quản lý quyền cấp trong PostgreSQL trên VPS
2013-08-05
cách sử dụng role và quản lý quyền cấp trong PostgreSQL trên VPS
2013-08-05
Cách tạo truy vấn dữ liệu trong PostgreSQL bằng cách sử dụng lệnh chọn
2013-08-02
Cách tạo, xóa & quản lý bảng trong PostgreSQL trên server cloud
2013-08-01