Nginx架构详解(二):nginx反向代理配置

前言

上次我写了一篇Nginx的安装文章,既然已经安装了,这次就写一下如何配置反向代理,通过反向代理实现负载均衡

图片

反向代理原理

停止Nginx,备份配置文件

上次我们的nginx安装在/etc/nginx目录内
停止Nginx
/etc/nginx/sbin/./nginx -s stop
然后进入安装后的配置文件目录cd /etc/nginx/conf
先进行配置文件备份,以防万一出现问题可以恢复(改文件前先备份是个好习惯)
cp nginx.conf nginx.conf.bak

编辑nginx.conf配置文件

vi nginx.conf
进入vi编辑模式,找到
http{
  ...//省略几行
  server{
     listen       80;
     server_name  localhost;     #charset koi8-r;
     #access_log  logs/host.access.log  main;
     location / {
         root   html;
         index  index.html index.htm;
     }
  }
}

更改location内容为:

location / {
  proxy_pass  http://101.201.xxx.xxx;    
  #浏览器访问Nginx的IP或者网址
}

(proxy_pass表示将通过使用所设IP对Nginx进行的请求通过代理分发,xxx要改成你们自己IP)

然后我们在http内,server外写入

http{
   ...//省略
   #proxy_pass代理到所需分发请求IP群
   upstream 101.201.xxx.xxx{
    server 101.201.xxx.xxx:8080;
    server 101.202.xxx.xxx:8081;
    server 101.203.xxx.xxx:8082;
   }
  server{
     ...//省略
  }
}

最后我们启动Nginx即可

/etc/nginx/sbin/./nginx

试一试在浏览器中访问Nginx

是不是可以直接进入到我们在upstream中配置的IP应用中了呢?

 

扩展

Nginx的负载均衡方式有常用的4种

1.轮询模式(默认,如前例)
2.weight   权重模式(通过配置权重来应对服务器性能不均时的情况,数值为访问比例)  ip_hash  IP指定(每个请求按访问ip的hash结果分配,同一个用户IP请求固定指向第一次为其所分配的后端服务器,session不会因为服务器不同的问题找不到)
3.fair     第三方模块(按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似)
4.url_hash 第三方模块(按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端在配置了缓存时比较有效)

weight 权重模式举例

当第二个服务器配置较好时可以多分配一些权重,而第三个服务器分配数量最少
当使用IP指定时加入ip_hash即可
upstream 101.201.xxx.xxx{
    server 101.201.xxx.xxx:8080 weight=3;
    server 101.202.xxx.xxx:8080 weight=6;
    server 101.203.xxx.xxx:8080;
    ip_hash;
}

fair(第三方)

upstream 101.201.xxx.xxx{
    server 101.201.xxx.xxx:8080;
    server 101.202.xxx.xxx:8080;
    server 101.203.xxx.xxx:8080;
    fair;
}

url_hash(第三方)

指定hash时,加入hash_method与weight不可同时使用
upstream 101.201.xxx.xxx{
    server 101.201.xxx.xxx:8080;
    server 101.202.xxx.xxx:8080;
    server 101.203.xxx.xxx:8080;    hash $request_uri;
    hash_method crc32;
}


猜你喜欢

转载自blog.51cto.com/15127576/2668989
今日推荐