介绍
扩展应用程序、服务、服务器等有两种方法:第一种,垂直扩展,要求机器获得更多的资源;第二种,水平扩展,要求功能分离,以创建更为零部件的组合。
例如,机器在 syslog 中会发出内存错误吗? 仅仅添加更多的RAM或交换文件有意义吗? 但是,假设数据库服务器正在增长到大量的条目,而仅仅Web服务器开始增加流量 - 一个更好的想法可能是建立一个更可控的环境(更不用说更具成本效益)。
要求
每个运行 Debian 7 的 VPS 都应该完成 初始服务器设置 教程。
- 对 Linux 命令和它们的基本理解. 请参阅 Linux Basics 介绍 一个好的起点。
- 您将需要成功地安装 Laravel 到其中一个 dropplets. 本教程将适用于 NGINX + Laravel 4 (跳过 Wrap Up 步骤): Laravel + Nginx
** 不要在 Laravel 安装的同一虚拟服务器上安装数据库**
为了简单,我们将把Laravel和Nginx安装的第一个滴滴称为192.0.2.5 IP的 _Laravel 滴滴。
准备数据库
水平扩展是一个相当简单的概念,当你开始思考数据库复制和负载平衡等更先进的话题时,它可能会变得相当复杂。
首先,我们需要在我们的 database droplet 上安装 PostgreSQL:
「sudo apt-get install postgresql」的內容
接下来,我们必须在服务器内创建一个数据库和用户,该用户将具有与数据库进行交互的适当权限。
sudo -u postgres psql
首先,让我们创建数据库用户:
1CREATE USER databaseuser WITH PASSWORD 'password';
2GRANT CREATE ON SCHEMA public TO databaseuser;
3GRANT USAGE ON SCHEMA public TO databaseuser;
然后创建数据库以用户为所有者,然后离开服务器:
1CREATE DATABASE mydatabase WITH OWNER databaseuser;
2\q
接下来,数据库 dropplet 将需要知道 Laravel dropplet 可以连接到它是否正常。
sudo nano /etc/postgresql/9.1/main/pg_hba.conf
添加包含连接、数据库名称、数据库用户、要接受的地址和连接方法的行:
1# IPv4 local connections:
2host mydatabase databaseuser 192.0.2.5/32 md5
保存和退出,然后打开 postgresql.conf 并找到说listen_addresses = ‘localhost’
的行。
sudo nano /etc/postgresql/9.1/main/postgresql.conf
1listen_addresses = '192.0.2.1'
您也可以将此值更改为接受任何地址的值:
1listen_addresses = '*'
保存、退出和重新启动 PostgreSQL 服务器:
《Sudo 服务 postgresql 重启》
配置 Laravel
首先需要做的是给PHP一些了解如何使用PostgreSQL服务器的知识,这样做是通过安装php5-pgsql扩展。
sudo apt-get install php5-pgsql
sudo service php5-fpm 重新启动
接下来,我们需要告诉Laravel我们的数据库服务器位于哪里以及如何访问它. 如果您遵循了NGINX + Laravel教程,那么Laravel应该在/var/www/laravel
上安装。
sudo nano /var/www/laravel/app/config/database.php
首先,让我们让Laravel使用它的PostgreSQL驱动程序:
1'default' => 'pgsql',
接下来,让我们来设置关于 PostgreSQL 服务器的信息。
1'pgsql' => array(
2 'driver' => 'pgsql',
3 'host' => '192.0.2.1',
4 'database' => 'mydatabase',
5 'username' => 'databaseuser',
6 'password' => 'password',
7 'charset' => 'utf8',
8 'prefix' => '',
9 'schema' => 'public',
10 ),
保存和退出。
测试连接
要测试此连接,让我们从命令行运行迁移,这将有助于构建我们的数据库表。
注意: 迁移不是一个需要安装的额外包,它配备了 laravel,它是与我们的数据库进行交互的命令集。
首先,请输入应用程序目录,其中 artisan 位于。
「CD /var /www /laravel」
现在是时候安装迁移,看看我们的数据库连接是否有效。
「php 工匠迁移:安装」
如果此命令成功运行而没有错误,您应该在数据库中看到一个名为 迁移的新表。
包装它
正如你所看到的,分割服务器相当简单. 通过将水平扩展与垂直扩展相结合,sysadmin可以实现服务的分离和性能的提高。