用nginx做负载均衡,不只可以配置一组,还可以配置多个server,监听多个端口;或者在同一个端口加上不同路径负载不同的服务
1,单个server
在nginx.conf配置文件中修改或添加:
定义一个upstream负载规则:
upstream linuxidc{ #自定义upstream名字,下面会引用
ip_hash; #客户端绑定访问的服务器
server ip1:80; #指定后端服务器地址
server ip2:80; #指定后端服务器地址
server ip3:80; #指定后端服务器地址
}
#一个端口,使用上边的linuxidc规则
server {
listen 80;
server_name 域名或ip;
error_page 500 502 503 504 /index.jsp;
charset utf-8;
location / {
proxy_pass http://linuxidc;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这样访问server中的ip或者域名就可以访问到其他三台服务器的服务了;
2,多个server
同样在nginx.conf文件可以添加多个server
当然也可以定义多个upstream :
upstream linuxidc{ #自定义upstream名字,下面会引用
ip_hash; #客户端绑定访问的服务器
server ip1:80; #指定后端服务器地址
server ip2:80; #指定后端服务器地址
server ip3:80; #指定后端服务器地址
}
upstream fileidc{ #自定义upstream名字,下面会引用
server ip4:80; #指定后端服务器地址
server ip5:80; #指定后端服务器地址
server ip6:80; #指定后端服务器地址
}
# 检测多个端口,使用上边的linuxidc和fileidc规则
server {
listen 80;
server_name 域名或ip;
error_page 500 502 503 504 /index.jsp;
charset utf-8;
location / {
proxy_pass http://linuxidc;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 23;
server_name 域名或ip;
error_page 500 502 503 504 /index.jsp;
charset utf-8;
location / {
proxy_pass http://fileidc;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
``
3,一个server(端口)负载多个服务
一个server对应多个服务需要在此server内创建多个location
同样指定两个upstream
upstream linuxidc{ #自定义upstream名字,下面会引用
ip_hash; #客户端绑定访问的服务器
server ip1:80; #指定后端服务器地址
server ip2:80; #指定后端服务器地址
server ip3:80; #指定后端服务器地址
}
upstream fileidc{ #自定义upstream名字,下面会引用
server ip4:80; #指定后端服务器地址
server ip5:80; #指定后端服务器地址
server ip6:80; #指定后端服务器地址
}
#添加一个server
server {
listen 80;
server_name 域名或ip;
error_page 500 502 503 504 /index.jsp;
charset utf-8;
#localtion 1
location / {
proxy_pass http://linuxidc;
}
#location 2,多个一层路径 /admin
location /admin/ {
proxy_pass http://fileidc;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这样当访问ip或者域名时用的是规则1,在ip或域名后加上/admin 就是规则2