正文
如果dig命令没有则装# yum install -y bind-utils
# vi /usr/local/nginx/nginx.conf // 写入如下内容
#//名称可以定义
upstream myserver
{
# 使同一个用户保持在同一个机器上 (ip哈希算法)
ip_hash;
server 192.168.1.2:80;
server 192.168.1.3:80;
}
server
{
# 定义监听端口域名
listen 80;
server_name www.baidu.com;
location /
{
#/根据你上面的upstream 名称来定义
proxy_pass http://myserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
首先先验证下是否写对
# /usr/local/nginx/sbin/nginx -t
然后重新加载(重启)
# /usr/local/nginx/sbin/nginx -s reload
负载均衡配置成功啦
其中upstream,在这里定义后端web server,可以是一个也可以多个,其中ip_hash为负载均衡算法,他表示根据ip地址吧请求分到不同的服务器上,每台客户端对应的服务器是固定的,比如A用户为1.1.1.1,b用户为2.2.2.2则A访问的时候会吧请求转发到第一个web server上,而b访问则会到第二台web server上,这种算法是比较常用的。
当然还有其他5种:
1、轮询算法(默认)
请求被平均调度给多个服务器处理
http {
...
upstream myserver {
server 192.168.1.2:8080;
server 192.168.1.3:8080;
...
}
server {
...
location / {
proxy_pass http://myserver;
}
}
}
2、加权轮询算法
给要轮询的服务器配置权重
http {
...
upstream myserver {
server 192.168.1.2:8080 weight=10;
server 192.168.1.3:8080 weight=90;
...
}
...
server {
...
localtion / {
proxy_pass http://myserver;
}
}
}
3、最少连接数算法
此种方式nginx会将请求转发到当前连接数较少的服务器
http {
...
upstream myserver {
least_conn;
server 192.168.1.2:8080;
server 192.168.1.3:8080;
...
}
...
server {
...
location / {
proxy_pass http://myserver;
}
}
}
4、url_hash算法
将客户端url进行hash运算,然后将请求转发到相应的服务器,这种方式相同url会转发到同一个服务器
需要安装url_hash补丁
http {
...
upstream myserver {
server 192.168.1.2:8080;
server 192.168.1.3:8080;
...
hash $request_uri;
hash_method crc32;
}
...
server {
...
location / {
proxy_pass http://myserver;
}
}
}
5、fair算法
优先选择响应时间最短的服务器
需要安装模块:nginx-upstream-fair-master
http {
...
upstream myserver {
fair;
server 192.168.1.2:8080;
server 192.168.1.3:8080;
...
}
...
server {
...
location / {
proxy_pass http://myserver;
}
}
}
样式图片不加载解决
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
#加上这句
proxy_pass http://myserver;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
#加上这句
proxy_pass http://myserver;
}
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Nginx设置负载均衡》
文章链接: https://www.sgtms.com/shorthand/117.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
文章名称:《Nginx设置负载均衡》
文章链接: https://www.sgtms.com/shorthand/117.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
网友评论抢沙发