怎样把网站文件和数据库分离存放在不同服务器?

对于不懂技术的业余爱好者,很多朋友都是用宝塔或者军哥LNMP在一台VPS上搭建网站的。随着用户的积累以及随之而来的用户数量增长,网站性能面临瓶颈。我们需要从一台服务器到多台服务器逐步架构支撑起最终的网站数据、用户和页面请求等业务的。

除了使用缓存和CDN, 将网站的应用程序文件和数据库分离存放在不同的VPS上,既可均衡负载也可以确保数据更安全。

本文将讲述网站服务器从一台VPS到两台VPS的一些部署方案演化过程。用最通俗的小白水平来详细记录整个过程。

一台VPS的网站服务器架构

在一台VPS上使用一键环境安装包来搭建网站环境十分方便,比如用宝塔和军哥LNMP,一键安装即可搭建号WordPress等建站环境。

一台VPS的网站服务器架构也是初期推荐的搭建网站。如果是纯文章内容搭建WordPress网站,缓存优化的好,1C1G的VPS就足够日IP上万的了。

两台VPS实现网站文件和数据库分离的构架

如果是流量比较大或者网站比较耗资源,又或是手头只有2台小弱鸡,比如只有2台免费的甲骨文AMD的小鸡,那么将网站文件和数据分离存放在2台VPS上既安全又能提高网站性能。

对于非程序员出身,只会一键LNMP安装,如何将网站数据库分离存放呢?

很简单,都用LNMP一键安装脚本或者宝塔,在2台VPS都搭建个环境。我们在第一台服务器用一键脚本安装整个LNMP环境,然后停掉Mysql数据库,然后在第二台VPS上安装Mysql数据库,然后连起来用就行。

这样以军哥LNMP一键脚本为例搭建环境。

第一台VPS上安装Nginx/Apache和PHP环境

第一台VPS上安装全部环境。

wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh lnmp

第二台VPS只安装数据库

第二台VPS我们只用来跑mysql数据库,因为数据库比较消耗资源,单独存放在一台服务器上安全又稳健。

wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh db

lnmp 1.5开始支持只安装MySQL/MariaDB数据库或Nginx;
单独nginx安装,安装包目录下运行:./install.sh nginx 进行安装;
单独数据库安装,安装包目录下运行:./install.sh db 进行安装;

设置数据库可以远程访问

lnmp 搭建数据库只能在本地访问,我们要从第一台VPS上访问第二台VPS的数据库需要设置权限。

因为在linux环境下,默认是关闭3306端口远程连接的,需要开启,如果你装mysql数据库时开启了3306就OK了。

首先要确定你的mysql远程连接已开启,如果没有开启按照下面方法操作:

登录到第二台VPS数据上开启远程访问 :

mysql -u root -p 登录到Mysql数据库,然后给root用户授予从第一台VPS访问的权限。

grant all on . to root@"第一台VPS的IP" Identified by "密码";

配置第一台VPS上phpmyadmin远程连接第二台服务器端MySQL数据库。

打开/home/wwwroot/default/phpmyadmin/config.inc.php 文件,替换里面的localhost为第一台VPSIP地址。

$cfg['Servers'][$i]['auth_type'] = 'cookie';/* Server parameters */$cfg['Servers'][$i]['host'] = '改为第2台VPS的IP';

这样,即可通过第一台VPS上的phpmyadmin来操控第二台VPS上的数据库了。

后续如果要在第二台VPS数据库上创建用户,可以用以下命令:

grant all privileges on 某数据库名.* to 某数据库用户名@'远程访问的IP地址' identified by '密码';

至此,第一台VPS即可成功访问第二台VPS上的数据库了。

这样我们就实现了,网站程序和数控库文件的分离。这个方法适用于不懂技术的朋友,别忘了停掉第一台VPS上的mysql服务器,命令: /etc/init.d/mysql stop

原文链接:https://jiemahao.com/distributed-website/,转载请注明出处。
1
显示验证码