Nginx反向代理与负载均衡怎么配置


这篇文章主要介绍了Nginx反向代理与负载均衡怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Nginx反向代理与负载均衡怎么配置文章都会有所收获,下面我们一起来看看吧。反向代理反向代理指的是以代理服务器接收用户的的访问请求,代理用户向内部服务器重新发起请求,最后把内部服务器的响应信息返回给用户。这样,代理服务器对外就表现为一台服务器,而访问内部服务器的客户端用的就是代理服务器,而不是真实网站访问用户。为什么使用反向代理可以起到保护网站安全的作用,因为任何来自internet的请求都必须先经过代理服务器。通过缓存静态资源,加速web请求。实现负载均衡反向代理例子环境说明假如有ab两个服务器。a服务器提供web资源,并且只给内网访问。b服务器有两块网卡,一块与a服务器在一个内网,以块是外网。此时,用户c想直接访问a服务器是行不通的。这时就可以通过b服务器代理用户c的请求去访问a服务器了。两台机器都安装nginxmoli-05服务器访问是wordpress博客,域名blog.syushin.org虚拟机实验环境,就都关闭防火墙了配置虚拟主机moli-04机器上编辑虚拟主机配置文件,内容如下:更改hosts文件windows上修改hosts文件,添加配置192.168.93.129 blog.syushin.org浏览器测试访问地址是192.168.93.129,出现的界面的05机器的页面,配置成功。负载均衡负载均衡的功能对用户的访问请求进行调度管理对用户的访问请求进行压力分担负载均衡集群在运行时,一般是通过一个或者多个前端负载均衡器将客户访问请求发到后端的一组服务器上。nginx负载均衡严格来说,nginx仅仅是作为nginx proxy反向代理的使用的,但是因为这个反向代理功能表现的效果是负载均衡机器的效果,因此nginx负载均衡是特殊的反向代理。实现nginx负载均衡的主要组件:upstream模块介绍ngx_http_upstream_module模块支持的代理方式有proxy_pass,fastcgi_pass等,主要使用proxy_pass。upstream模块允许nginx定义一组或多组节点服务器组,使用时通过proxy_pass代理把网站的请求发送到定义好的对应的节点组中。示例:创建节点服务器池upstream:创建节点服务器组的关键字,必须有;
blog:节点服务器组的名字,必须有,可自定义名字;
server:关键字,后面可加ip或者域名或者ip:端口,不指定端口默认80;
weight:权重,数值越大被分配的请求越多。默认为1设置节点服务器的状态值除了weight之外,还有:
max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
fail_timeout:max_fails次失败后,暂停的时间。
down:表示当前的节点服务器不参与负载,标志机器永远不可用,可配合ip_hash使用
backup:其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。使用域名的upstream调度算法rr轮询(默认调度算法,静态调度算法)按客户端请求顺序把客户端的请求逐一分配到不同的后端节点服务器。wrr(权重轮询,静态调度算法)在rr轮询的基础上加上权重,使用该算法的时候,权重和用户访问成正比,权重值越大,被转发的请求就越多。
比如有30个请求,2台服务器a(10.0.0.1)和b(10.0.0.2),如果希望a处理10个请求,b处理20个请求,可以这样定义:ip_hash(静态调度算法)每个请求按客户端ip的hash结果分配,当新的请求到达,先将客户端ip通过哈希算法哈希出一个值,在随后的分配客户端请求中,客户ip的哈希值只要相同,就会被分配到同一台服务器。注意:当使用ip_hash时,不能有weight和backup。least_conn算法least_conn算法会根据后端服务器的连接数来觉得分配情况,哪台服务器连接数最少就分发多的请求。调度算法除了上面所列的(常用)还有很多,就不一一列举了。http_proxy_module模块http_proxy_module可以将请求转发到另外一台服务器,在反向代理中,会通过location功能匹配指定的uri,然后把收到符合匹配的uri的请求通过proxy_pass抛给定义好的upstream节点池。http_proxy模块参数proxy_pass使用格式:proxy_pass url;示例如下:proxy_pass http://blog.syushin.com/;
proxy_pass http://192.168.30.7:8080/uri;
proxy_pass http://tmp/www.sock;url可以是域名,ip地址也可以是socket文件。对于proxy_pass的配置有几点需要注意:
示例1location /upload/ {
proxy_pass http://192.168.30.7;
}示例2lo 香港云主机cation /upload/ {
proxy_pass http://192.168.30.7/; # 注意多了一个斜杆
}示例3location /upload/ {
proxy_pass http://192.168.30.7/blog/;
}示例4location /upload/ {
proxy_pass http://192.168.30.7/blog;
}假如server_name为blog.syushin.com,当请求http://blog.syushin.com/uploa…,上面示例1-4的请求结果是:示例1:http://192.168.30.7/upload/index.html
示例2:http://192.168.30.7/index.html
示例3:http://192.168.30.7/blog/index.html
示例4:http://192.168.30.7/blogindex.html关于“Nginx反向代理与负载均衡怎么配置”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Nginx反向代理与负载均衡怎么配置”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: win7系统怎么让电脑不锁屏

这篇“win7系统怎么让电脑不锁屏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7系统怎么让电脑不锁屏”文章吧。1、首先可以按序点击“开始…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/17 10:48
下一篇 07/17 10:49

相关推荐