# 负载均衡

# 概念

Linux的负载均衡常用的有三种技术:中国人搞出来的大神级产品 LVS Linux Virtual Server,俄罗斯的Nginx,来发法国的HAProxy。

日常开发中应该就只用到一台服务器,用户发送请求给服务器,服务器返回响应内容,这种情况其实对大多数中小型网站是没问题的,但是对于用户基数大,用户访问量大的应用,所有的请求都交给A来处理肯定是很吃力的,所以便需要做到负载均衡。 我们可以多搭建几台服务器,服务器A只对用户的请求进行分发,请求的处理交给其他服务器来做,当用户的请求到达A时,服务器A根据定义的策略选择符合条件的服务器去处理这个请求,这样服务器A只做分发,压力自然就小了很多。

实现负载均衡最少也要三台服务器。

其中一台作为负载均衡服务器。

打开负载均衡服务器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;


参考 : https://blog.csdn.net/lin_made/article/details/81327287 (opens new window)

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!