nginx(负载均衡基本配置)
来源:互联网 发布:三千元手机推荐知乎 编辑:程序博客网 时间:2024/06/05 23:58
反向代理后端如果有多台服务器,自然可形成负载均衡。
但是proxy_pass如何指向多态服务器的?
实现方式:把多台服务器用up_stream指定在一起并起个组名。
然后proxy_pass指向该组。
默认负载均衡的算法很简单。就是针对服务器的顺序。逐个请求。
实际配置
1、 首先配置两台(或以上)服务器
server { listen 81; server_name 192.168.0.2; root html; access_log logs/81-access.log main; } server { listen 82; server_name 192.168.0.2; root html; access_log logs/82-access.log main; }
2、配置upstream
upstream imgserver { server 192.168.0.2:81 weight=1 max_fails=2 fail_timeout=3; server 192.168.0.2:82 weight=1 max_fails=2 fail_timeout=3; }****参数说明****
upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:
down 表示单前的server暂时不参与负载.
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误.
fail_timeout : max_fails次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
3、 在需要做负载均衡的地方加配置例如访问jpg|jpeg|gif|png图片,将所有的访问请求转发给负载均衡服务器进行访问。
location ~* \.(jpg|jpeg|gif|png) { proxy_set_header x-Forwarded-For $remote_addr; proxy_pass http://imgserver;}
注意:设置proxy_set_header的作用是
” X_Forward_For字段表示该条http请求是有谁发起的?如果反向代理服务器不重写该请求头的话,那么后端真实服务器在处理时会认为所有的请求都来在反向代理服务器,如果后端有防攻击策略的话,那么机器就被封掉了”最终配置文件为:
http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; upstream imgserver { server 192.168.0.2:81 weight=1 max_fails=2 fail_timeout=3; server 192.168.0.2:82 weight=1 max_fails=2 fail_timeout=3; } server { listen 81; server_name 192.168.0.2; root html;access_log logs/81-access.log main; } server { listen 82; server_name 192.168.0.2; root html;access_log logs/82-access.log main; } server { listen 80; server_name 192.168.0.2; location / { root html; index index.html index.htm; } location ~* \.(jpg|jpeg|gif|png) { proxy_set_header x-Forwarded-For $remote_addr; proxy_pass http://imgserver; } error_page 404 500 502 503 504 /50x.html; location = /50x.html { root html; } }}至此,基本的配置已经完成。
运行示例:在地址栏中访问nginx服务器http://192.168.0.2:80/image/log.png
然后查看81-access.log或者是81-access-log的日志。
会发现最后一行出现了请求nginx服务器的原始ip。
通过查看日志可以看出访问80的服务器,经过正则匹配(~*\.(jpg|jpeg|gif|png))将访问请求转发给了imgserver里面的图片请求服务器。然后81-access.log记录了访问的详细地址。注:默认负载均衡的算法是逐个请求,
也有其他算法,负载均衡算法。如一致性哈希算法,需要安装三个模块(ngx_http_upstream_consistent_hash)
如http://wiki.nginx.org/NginxHttpUpstreamConsistentHash
这个模块就是用一致性hash来请求后端结节,并且其算法,与PHP中的memcache模块的一致性hash算法,兼容。
- Nginx 负载均衡基本配置
- nginx(负载均衡基本配置)
- nginx 负载均衡配置
- nginx配置负载均衡
- nginx负载均衡配置
- Nginx负载均衡配置
- Nginx负载均衡配置
- Nginx负载均衡配置
- nginx负载均衡配置
- Nginx 负载均衡配置
- nginx负载均衡配置
- nginx负载均衡配置
- nginx负载均衡配置
- nginx负载均衡配置
- nginx 负载均衡配置
- nginx配置负载均衡
- nginx配置负载均衡
- 配置Nginx负载均衡
- ZOJ 3804 YY's Minions(搜索+模拟)
- 4、C程序 数组排序之[选择排序法]
- 数据结构-最小完美哈希和保序最小完美哈希函数
- 防止过拟合的方法
- 浅谈栈帧
- nginx(负载均衡基本配置)
- 用maven命令在命令行中create创建项目出现错误
- BlockingQueue深入分析
- HTML5
- MD5加密介绍
- CTR预估
- 阿里云服务器配置开发环境第四章:Centos7.3安装Maven以及环境配置
- Spring MVC的几个注解
- 使用 `-force` 被认为是有害的;了解 Git 的 `-force-with-lease` 命令