Linux配置nginx实现负载均衡 - Go语言中文社区

Linux配置nginx实现负载均衡


作为程序员负载均衡想必大家或多或少都有过了解,这里再说一下我的理解吧。
为什么要实现负载均衡?
很多程序员日常开发中应该就只用到一台服务器,用户发送请求给服务器,服务器返回响应内容
这里写图片描述
这种情况其实对大多数中小型网站是没问题的,但是对于用户基数大,用户访问量大的应用,所有的请求都交给A来处理肯定是很吃力的,所以便需要做到负载均衡。
怎么做?
我们可以多搭建几台服务器,服务器A只对用户的请求进行分发,请求的处理交给其他服务器来做,当用户的请求到达A时,服务器A根据定义的策略选择符合条件的服务器去处理这个请求,这样服务器A只做分发,压力自然就小了很多
这里写图片描述
好了,理论说完,现在开始实操。
1.准备
安装nginx
这个不多做介绍,不会安装的可以看之前转的博文
https://blog.csdn.net/qq_33722172/article/details/81636578
从上面的介绍也可以知道实现负载均衡最少也要三台服务器,我这里是使用的centos 7系统,系统安装在VMware虚拟机中,安装完一台虚拟机后,直接克隆出两台一样安装环境的虚拟机,克隆之后我这里使用Xshell连接方便管理
这里写图片描述
systemctl start nginx.service启动三台虚拟机上的nginx
ip addr 可以看到三台虚拟机的IP地址
负载均衡服务器A:192.168.64.136
web服务器2:192.168.64.137
web服务器1:192.168.64.138
vim /usr/local/nginx/html/index.html
修改内容A为负载均衡服务器
web1为web1处理请求
web2为web2处理请求
打开浏览器输入三台虚拟机ip地址可以看到访问成功
负载均衡服务器
web1
web2
打开负载均衡服务器A的配置文件
vim /usr/local/nginx/conf/nginx.conf
修改如下:

 http {
include       mime.types;
default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;
#设定负载均衡的服务器列表
upstream taishan {
    #weigth参数表示权值,权值越高被分配到的几率越大
    #下面表示137有3分之2几率,138有3分之1几率
    server 192.168.64.137 weight=2;
    server 192.168.64.138 weight=1;
}
#gzip  on;

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
       proxy_pass http://taishan;#请求转向taishan定义的服务器列表
       proxy_set_header Host $host;#将请求头转发给后端服务器
       proxy_set_header X-Forward-For $remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
       #其他相关配置入下,可以根据需要添加配置
       #client_max_body_size 10m;#允许客户端请求的最大单文件字节数
       #client_body_buffer_size 128k;#缓冲区代理缓冲用户端请求的最大字节数
       #proxy_connect_timeout 90;#nginx跟后端服务器连接超时时间(代理连接超时)
       #proxy_send_timeout 90;#后端服务器数据回传时间(代理发送超时)
       #proxy_read_timeout 90;#连接成功后,后端服务器响应时间(代理接收超时)
       #proxy_buffer_size 4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小
       #proxy_buffers 4 32k;#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
       #proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
       #proxy_temp_file_write_size 64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传
       # root   html;
       # index index.php index.html index.htm;

好了,现在在浏览器访问呢负载均衡服务器A
这里写图片描述
刷新之后
这里写图片描述
负载均衡服务器已经搭建完毕

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_33722172/article/details/81701946
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 18:47:47
  • 阅读 ( 1422 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢