测试包下来让他以守护进程的方式运行 nohup java -jar demo-1.jar & nohup java -jar demo-2.jar &
阿里云盘:测试所需要的两个jar包
https://www.aliyundrive.com/s/XMYxQqTg2kr
腾讯云1:
腾讯云2:
轮询写法:轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的
后端服务器,如果某个后端服务器down掉后,能自动剔除。
upstream lbs {
server 192.168.0.106:8080;
server 192.168.0.106:8081;
}
weight(指定轮询比率)
轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的
场景下,权重值越大,被转发的请求也就越多
upstream lbs {
server 192.168.0.106:8080 weight=1;
server 192.168.0.106:8081 weight=2;
}
每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,
这样每个访客会固定访问一个后端服务器,可以解决session一致问题,或者缓存问题
当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。
upstream lbs {
ip_hash;
106:8080 weight=1(不会生效);
server 192.168.0.106:8081 weight=2(不会生效);
}
server:关键字,必选。
address:主机名、域名、ip或unix socket,也可以指定端口号,必选。
parameters:可选参数,可选参数如下:
1.down:表示当前server已停用
2.backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者
很忙才会分配到请求。如果服务被启动起来那么这个将会继续沉默
3.weight:表示当前server负载权重,权重越大被请求几率越大。默认是1.
4.max_fails和fail_timeout一般会关联使用,如果某台server在fail_timeout时间内
出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout
时间内不再去请求它,fail_timeout默认是10s,max_fails默认是1
即默认情况是只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这
项检查。
实例
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3
}
我个人配置如下,当然这也是最常见的轮询方式 https://destiny.mba/api/v1/pub/web 上面链接地址是我已经搭建好的环境的地址 出现了和这个错误过后,表示 upstream位置应该放在http模块里面 但必须是在server模块的外面
nginx: [emerg] "upstream" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:17
可以看两个服务器都有打印日志 查看日志,tail -f nohup.out
|