1. 首页
  2. 技术分享

LNMP实现双主机负载均衡

项目需求
网站创建之初因访问量较少,只放置在一台服务器上。随着访问量的增加,一台服务器已无法负载,打算增加一台服务器做负载均衡。

项目分析
常见的负载均衡有两种,一种基于四层为LVS,一种基于七层为Nginx。两种负载均衡都需要三台服务器才能发挥性能,有悖于预算中的两台服务器,故打算使用动静分离加远程数据库来实现负载均衡。

网络拓扑
LNMP实现双主机负载均衡
设备信息
客户端192.168.1.250,仅需要浏览器;
服务器A192.168.1.1,需安装Nginx+PHP,负责分发和动态文件的处理;
服务器B192.168.1.2,需安装Ngxin+MySQL,负责静态文件处理和数据库存储。
实施前提
如上安装好对应的服务,程序以WordPress为例。

项目实施
动静分离
修改服务器A的Nginx配置文件,内容如下:

server
{
    listen 80;
    server_name tcloud.io;
    index index.php;
    root /www/wwwroot/tcloud.io;
    include enable-php-70.conf;
    include /www/server/panel/vhost/rewrite/tcloud.conf;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
    {
        proxy_pass http://192.168.1.2;
    }
}

数据调用
wp-config.php文件中

define('DB_HOST', 'localhost');

改为:

define('DB_HOST', '192.168.1.2');

文件同步
将WordPress中的静态文件,扩展名为gif|jpg|jpeg|png|bmp|swf|js|css复制到服务器B对应的目录中。
数据走向
服务器组对外公布服务器A的IP地址;
客户访问服务器A的IP地址;
服务器A根据请求判断动静解析都有哪些;
根据请求本地处理动态内容,并把静态请求转发至B;
如果动态内容需要数据库的支持,则会根据指定地址,找B读取;
B将静态请求、数据信息发送给A,A将所有请求整合返回给客户端。
附加内容
文件同步可使用NFS服务,或RSYNC,这样效率更高!

本文来自TCloud,如若转载,请注明出处:https://www.tcloud.io/888.html

全行业托管云平台,助力千万业务轻松上云