nginx 负载均衡配置

1.负载均衡

当超大流量请求时,就可能导致请求等待或者服务器死机的情况,为了解决大流量访问的问题,可以搭建分布式,将请求分发到不同计算机可解决大流量问题
长见的负载均衡方案有如下几种:
1、http重定向
2、反向代理负载均衡
3、 IP负载均衡
4、DNS负载均衡
5、DNS/GSLB负载均衡

2.准备三台服务器(本人是两台ubuntu,和本地W)
  1. 192.168.1.150 本地,主
    36.110.39.222:8081
    36.110.39.222:8082
    2.由于没有域名,所以直接用hosts指定域名(本人本地环境用的phpstudy)
Win+r  输入 drivers  复制编辑hosts
##添加   
127.0.0.1       a.com
3.主服务器添加配置

主服务器http节点下添加(8080是我本地测试laravel框架的端口)

server {
        listen      8080;
        server_name a.com;
        root    "D:/workspace/lartest/public";
        index   index.php;
        location / {
            if (!-e $request_filename){
                rewrite (.*) /index.php;
            }
        }
        #rewrite ^/article\.html?arcid=([0-9]+)$  /index.php?c=page&m=article&arcid=$1 last;
        location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        location ~ /\. {
            deny all;
        }
        location /nginx_status {
            stub_status      on;
            access_log       off;
            allow            127.0.0.1;
            deny             all;
        }
}
#负载均衡模块,分发的服务器
upstream a.com{
      #ip_hash;#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
      server  36.110.39.222:8081 weight=1; 
      server  36.110.39.222:8082 weight=1; 
      server  127.0.0.1:8080 weight=1; #可以使用本机提供服务,如果不加本行的话,主服务器只起到转发的作用,有些浪费
      #weight  #权重值大的被访问的概率就高
      #backup; #其它所有的非backup机器down或者忙的时候,请求backup机器
      #down;   #down 表示单前的server暂时不参与负载
      #fair;   #按后端服务器的响应时间来分配请求,响应时间短的优先分配

}
#监听80端口,并分发请求到其他服务器
server {
    listen       80;
    server_name  a.com;
    location  / {
        proxy_pass   http://a.com;
    }

}

因为80端口用于nginx监听用户请求,所以需要用8080端口接受nginx转发过来的请求。

4.其他两台配置(ubuntu nginx默认配置文件/etc/nginx/sites-enabled/default)
server {
        listen 80;
        server_name a.com;
        root /var/www/html;
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
}

两台机器分别在在/var/www/html 目录下修改静态文件
Welcome to nginx!我是8081
Welcome to nginx!我是8082

最后重启三台服务器,本地浏览器输入 a.com

连续点击刷新后本人页面输出:
第一次输出:laravel欢迎页
第二次输出:Welcome to nginx!我是8081
第三次输出:Welcome to nginx!我是8082
第四次输出:laravel欢迎页
.
.
.

你可能感兴趣的:(nginx 负载均衡配置)