前言

上次我写了一篇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;}


©著作权归作者所有:来自51CTO博客作者mob604756f23a7e的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Spring Cloud 2.x之SpringBoot配置Cors解决跨域请求
  2. Influxdb中Select查询请求结果涉及到的一些数据结构
  3. 大规模分布式系统资源管理(一)
  4. 这些PHP考点虽然简单基础,但是很重点
  5. Ajax异步请求PHP服务器,如何做到无阻塞响应 原创 学习与分享 PH
  6. 日志分析工具Log Parser介绍
  7. Dynamics CRM模拟OAuth请求获得Token后在外部调用Web API
  8. istio组件mixer初学篇
  9. JQuery学习之$.get、$.post、$.ajax的应用

随机推荐

  1. OnClick事件只获取第一个动态创建的行/ i
  2. 删除没有\ r \ n的换行符
  3. 为什么我的javascript/jquery代码不能像
  4. 从表的第一行和第一列中删除可选择的jque
  5. 【JavaScript】案例一:使用JS完成注册页面
  6. Javascript实现统一的表单验证
  7. 从特定条件下存储在localStorage中的数组
  8. 停止鼠标用javascript双击某些元素
  9. 在量角器中检索子元素的数组
  10. Node.js无法找到模块'tcp'