Loading
0

实战:Linux下Nginx实现负载均衡SLB详细配置方法(图文)

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器

前言:今天杨麻子讲在Linux下使用nginx实现负载均衡方法,关于负载均衡具体说明可参考百度,这里就不多说了。写的比较乱,请勿见怪,只方便自己日后查看

准备工作:建议准备四台服务器

192.168.0.113 调度器,需带宽比较大,域名解析到此ip

192.168.0.114 均衡服务器,内网共享文件,1M带宽即可,其他硬件配置建议高一点

192.168.0.115 均衡服务器,内网共享文件 1M带宽即可,其他硬件配置建议高一点

192.168.0.116 文件及数据哭服务器,内网共享文件,1M带宽即可,其他硬件配置建议高一点

安装前注意事项:

1、本文前端和后端都采用nginx 系统采用centos6_64(你也可以全部才用apache,请根据需要做修改,配置方法一致)

2、建议将iptables禁用掉(service iptables stop),或将相关ip及端口添加到iptables上,否则无法访问

3、文件共享采用NFS文件系统.

4、mysql服务也在文件服务器中,当然您也可以将mysql服务单独搞一台服务器.这样性能更高

一、设置文件服务器共享:

登录文件服务器执行命令:yum -y install nfs-utils rpcbind 安装nfs以及rpcbind 如图:

1.jpg

2.jpg

安装完成,接下来将这两个服务设置为自动启动,命令如下:

chkconfig nfs on
chkconfig rpcbind on

3.jpg

二、配置/etc/exports文件,将要内网要访问的ip及文件目录写到此文件中,

/var/www/html      192.168.0.115(rw,async,root_squash)  192.168.0.114(rw,async,root_squash)

/var/www/html 是文件服务网页文件存放路径,根据自己情况修改

192.168.0.115及192.168.0.114是均衡服务器ip,意思是允许这两台服务器共享此文件目录,具有读写等权限

4.jpg

启动nfs及rpcbind:service rpcbind  start      service nfs start

5.jpg

第一部分设置共享服务器就设置好了。由于我们mysql也在文件服务器中,则下面通过yum安装mysql

三、安装mysql服务执行命令:yum -y install mysql

6.jpg

安装好启动 service mysqld start

7.jpg

至此。mysql安装完毕。

四、均衡服务器设置(web处理服务器)

均衡服务器一样要安装nfs以及rpcbind 方法同上。

均衡服务器(web处理服务器)安装nginx可参考教程:

设置两台均衡服务器的自动挂载,挂载前,请在本地创建一个文件夹用来挂载文件服务器文件夹,本文使用/home/www

:vim /etc/fstab 输入一下信息:

192.168.0.116:/var/www/html      /home/www/      nfs defaults,_netdev 0 0

意思是将116这台服务器下的/var/www/html 目录挂载到当前服务器/home/www/下 文件类型是nfs ,,/home/www/就是网站根目录

8.jpg

另一台web处理服务器也需按照上述方法设置fsfstab自动挂载,挂载完后执行命令mount -a 重新加载挂载信息后即可看到挂载的文件服务器

9.jpg

至此。自动挂载文件服务器完毕,下面设置将nginx的访问根目录指向到/home/www下

10.jpg

在/home/www下创建一个文件,重启nginx后使用ip测试已经可访问了。

五、最后一步,设置的调度服务器

调度服务器一样要安装nginx,安装方法请参考上面教程,安装好后,打开nginx默认站点配置文件

在配置文件前面添加如下代码:

upstream new.tag.gg {
#weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.0.114:80 weight=1;
server 192.168.0.115:80 weight=2;
ip_hash; #源地址映射,解决session共享问题
}
server {
listen       80;
server_name new.tag.gg tag.gg ;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://new.tag.gg;
#缓存配置
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}

11.jpg

保存退出,重启nginx使用new.tag.gg测试网站可访问了

至此。搭建完毕,下面我们来测试一下是否正确:

在文件服务器中上传一款cms程序如帝国,路径为/var/www/html 上传后ll查看下:

12.jpg

我们没再web处理服务器中上传文件,我们查看下/home/www下是否有同样的文件,如有,则说明共享成功.登录114及115 查看下:

13.jpg

看到了吧,共享成功,验证一下是否能实现均衡,访问 默认访问new.tag.gg是可以访问的,但我们模拟一下,将114和115中的nginx分别停止掉看看能否访问,结果是不能的,但我们开启其中一台nginx服务则是可以访问的,这是说明已经均衡成功了。(注意:nginx安装后默认是不支持php的,创建的静态页面可访问,但php页面无法访问,所以您要按照教程 http://www.tag.gg/linux/11223.html 设置一下,让nginx支持php)

最后、安装下刚刚上传的帝国cms程序,输入http://new.tag.gg/e/install/ 即可打开如图界面

14.jpg

如安装过程中出现权限不正确无法写入的情况,如图,请检查文件服务器的权限是否正确

15.jpg

16.jpg

数据库地址需要填写192.168.0.116 请将该ip更换您的ip,数据库需要开启远程登录才可以,否则无法连接上数据库,如使用root测试,也要开启root远程访问

Grant all privileges on *.* to ‘root’@’%’ identified by ‘test’ with grant option;

18.jpg

好了。感谢各位。欢迎转载,有问题可以在评论区评论

技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-276-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:pkill命令一次性杀死某个用户的所有进程
下一篇:linux压缩和解压缩命令大全及使用方法