Nginx负载均衡:分布式/热备Web Server的搭建
来源:互联网 发布:大数据分析人物 编辑:程序博客网 时间:2024/05/20 02:28
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
在一些大型的项目中,Nginx经常是用作负载均衡的,Nginx将请求按照一定的规律分发给分布式的Web Server,这样可以解决Web Server是项目性能瓶颈的问题,这样便构成了LNMPA架构,即Linux+Nginx+MySQL+PHP+Apache,有同样功能的还有LVS,但是各有优缺点,最好的是F5硬件,但是价格非常昂贵;同时Nginx也非常适合处理静态页面,文件上传与下载的服务器,在这些业务上,其他服务器软件是无法比拟的;其实现在有很多项目就直接用Nginx作Web 服务器,Nginx做Web 服务器在处理PHP业务逻辑上可以没有Apache那么强大,假如单独用Nginx不能满足您项目的需要,那就把业务分离开,Nginx做负载均衡,处理静态页,负责文件上传下载,PHP业务逻辑交给Apache。
Nginx最好安装在Linux系统上,因为在Linux下可以让Nginx达到预期的性能,的安装方法可以参见:
http://blog.csdn.net/jhq0113/article/details/43812895
反向代理与负载均衡配置:
Web Server1: 192.168.1.16:80 Nginx
Web Server2: 192.168.1.16:8080 Nginx
临 时 域 名: yii.nginx.com
Nginx Server: 192.168.1.18:80
本地只有两台机器,所以Web Server就都放在192.168.1.16上了,到真实环境下,配置类似,真实环境下只是Web Server的IP不同,PHP程序相同,这里为了演示区分,Web Server配置不同的PHP程序。
1.在192.168.1.16 Nginx配置
myphp80.com目录中index.php代码:
myphp8080目录中index.php代码:
将两个目录权限交给www组www用户:
[root@jhq0113 php]# chown -R www:www myphp80.com/
[root@jhq0113 php]# chown -R www:www myphp8080.com/
然后,重启Nginx服务
[root@jhq0113 php]# service nginx restart
3.防火墙开放80和8080端口,开发方法也是参见Nginx安装方法那篇博客,然后在浏览器中进行访问测试,检查配置是否成功,测试结果如下:
4.192.168.1.18 Nginx服务器反向代理与负载均衡配置:
重启Nginx服务
[root@jhq0229 php]# service nginx restart
5.本地域名,浏览器端需要配置hosts,配置hosts方法去网上找吧,很简单,在hosts文件中添加
192.168.1.18 yii.nginx.com
6.浏览器端访问yii.nginx.com,多访问几次,这样我们就可以看到,会按照权重更换显示80端口和8080端口的内容。
至此,Nginx负载均衡、反向代理配置完毕。
Nginx负载均衡的分发方式有4种:
1.轮询,默认采取此方式,Nginx会按照请求时间的先后顺序进行轮询分发,若某台Web Server宕机,Nginx自动将其摘掉。
2.weight,权重,即轮询的几率,值越大,被分发的可能性越大,用于后端服务器性能不均的情况。
3.ip_hash,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决共享session的问题。
4.自定义规则
举例:
配置详解:
down 表示当前的Web Server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup Server down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
backup是利用nginx的热备功能,这也是最典型的应用带来的重要好处之一,当非backup Server能够很好的为Client提供服务的时候,backup Server不对外界提供服务,此时backup Server处于冷状态;当所有非backup Server不能很好的为Client提供服务的时候,backup Server为Client提供服务,做到了热备,某台或者所有非backup Web Server宕机不会影响整个Web项目的访问功能,Web项目仍然可以为Client提供服务。
Nginx做负载均衡,对Web Server的操作系统和语言环境没有特殊要求,Web Server的操作系统可以是Linux也可以是Windows Server,Web程序是Java、PHP、Asp.Net等均可以。
- Nginx负载均衡:分布式/热备Web Server的搭建
- Nginx负载均衡:分布式/热备Web Server的搭建
- Nginx负载均衡:分布式/热备Web Server的搭建
- 搭建nginx的负载均衡
- Nginx负载均衡+keepalived双机热备
- keepalived+nginx双机热备+负载均衡
- ] keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- Keepalived+Nginx负载均衡双机热备
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
- 【框架-MFC】禁用鼠标拖拽标题栏移动窗口
- 移动端学习总结——性能优化
- poj2287 Tian Ji -- The Horse Racing(2016xynu暑期集训检测 -----C题)
- GitHub如何在网页面板创建文件夹
- Nginx负载均衡:分布式/热备Web Server的搭建
- Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
- 再次认识mysql(四)
- PCL1.8.0+VS2013配置教程
- Intent和IntentFilter
- HQL数据查询
- Android中常用的五种数据存储方式
- leetcode链表O(nlogn)排序
- Android自定义View(三)柱状图