1.负载均衡
当超大流量请求时,就可能导致请求等待或者服务器死机的情况,为了解决大流量访问的问题,可以搭建分布式,将请求分发到不同计算机可解决大流量问题
长见的负载均衡方案有如下几种:
1、http重定向
2、反向代理负载均衡
3、 IP负载均衡
4、DNS负载均衡
5、DNS/GSLB负载均衡
2.准备三台服务器(本人是两台ubuntu,和本地W)
- 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欢迎页
.
.
.