Nginx负载均衡:分布式/热备Web Server的搭建
Nginx是一款轻量级的Web server/反向代理server及电子邮件(IMAP/POP3)代理server。并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发。供俄国大型的入口站点及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,中国大陆使用nginx站点用户有:新浪、网易、腾讯等。
在一些大型的项目中,Nginx常常是用作负载均衡的,Nginx将请求依照一定的规律分发给分布式的Web Server,这样能够解决Web Server是项目性能瓶颈的问题。这样便构成了LNMPA架构,即Linux+Nginx+Mysql+PHP+Apache,有相同功能的还有LVS,可是各有优缺点,最好的是F5硬件,可是价格很昂贵;同一时候Nginx也很适合处理静态页面。文件上传与下载的server,在这些业务上。其它server软件是无法比拟的。事实上如今有许多项目就直接用Nginx作Web server,Nginx做Web server在处理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配置
user www; #执行用户
worker_processes 1; #工作进程数量。最好是CPU核心数量events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;charset utf-8; #编码,最好指定sendfile on;keepalive_timeout 65;#######################myphp8080.com配置#########################server{listen 8080;#监听8080portserver_name myphp8080.com;root /home/data/web/php/myphp8080.com; #web文件夹location / {index index.php index.html index.htm;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}#######################myphp80.com配置#########################server {listen 80;server_name myphp80.comroot /home/data/web/php/myphp80.com; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }}
2.192.168.1.16 在web文件夹下分别创建myphp80.com和myphp8080.com文件夹,各自文件夹分别创建index.php文件,php代码分别为:
myphp80.com文件夹中index.php代码:
<?phpecho json_encode(['type'=>'200','data'=>'80']);
?
>
myphp8080文件夹中index.php代码:
<?phpecho json_encode(['type'=>'200','data'=>'8080']);
?
>
将两个文件夹权限交给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和8080port,开发方法也是參见Nginx安装方法那篇博客。然后在浏览器中进行訪问測试,检查配置是否成功。測试结果例如以下:
4.192.168.1.18 Nginxserver反向代理与负载均衡配置:
######################yii.nginx.com反向代理负载均衡##########################负载均衡配置,以权重方式分发upstream yii.nginx.com {server 192.168.1.16:80 weight=5;server 192.168.1.16:8080 weight=5;}#反向代理配置server {listen 80;server_name yii.nginx.com;charset utf-8;location /{proxy_pass http://yii.nginx.com;}}
重新启动Nginx服务
[root@jhq0229 php]# service nginx restart
5.本地域名,浏览器端须要配置hosts。配置hosts方法去网上找吧,非常easy,在hosts文件里加入
192.168.1.18 yii.nginx.com
6.浏览器端訪问yii.nginx.com,多訪问几次。这样我们就能够看到,会依照权重更换显示80port和8080port的内容。
至此。Nginx负载均衡、反向代理配置完成。
Nginx负载均衡的分发方式有4种:
1.轮询。默认採取此方式,Nginx会依照请求时间的先后顺序进行轮询分发,若某台Web Server宕机,Nginx自己主动将其摘掉。
2.weight,权重,即轮询的几率。值越大,被分发的可能性越大,用于后端server性能不均的情况。
3.ip_hash,每一个请求按訪问ip的hash结果分配,这样每一个訪客固定訪问一个后端server,能够解决共享session的问题。
4.自己定义规则
举例:
upstream myphp.com { server 192.168.1.16:80 down;server 192.168.1.18:80 weight=2;server 192.168.1.13:80;server 192.168.1.12:80 backup;
}
配置具体解释:
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等均能够。
转载于:https://www.cnblogs.com/yxwkf/p/5152252.html
Nginx负载均衡:分布式/热备Web Server的搭建相关推荐
- win2012 文件服务器 双机热备,Windows Server 2012 R2 DHCP服务器双机热备、负载均衡
Windows Server 2012 R2 DHCP服务器安装与配置 Windows Server 2012 R2 DHCP服务器双机热备 Windows Server 2012 R2 DHCP服务 ...
- 单一nginx负载均衡+LNMP分布式架构
随着互联网的快速发展,我们的web站点访问量和数据流量的快速增长,对于我们服务器的处理能里的要求也越来越高,这样的情况下,单一的服务器根本无法承受, 这样的话我们丢弃掉原有的设备,做硬件升级,会造成 ...
- Nginx负载均衡集群介绍
第1章 集群介绍 1.1 集群简介 1.1.1 什么是集群 简单说,集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行 ...
- Keepalived+LVS+Nginx负载均衡之高可用
2019独角兽企业重金招聘Python工程师标准>>> 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致 ...
- NGINX负载均衡配置解析
课程目标 掌握什么是负载均衡及负载均衡的作用和意义. 了解lvs负载均衡的三种模式. 了解lvs-DR负载均衡部署方法. 掌握nginx实现负载均衡的方法. 掌握lvs+nginx负载均衡拓扑结构. ...
- lvs+nginx负载均衡
1 学习目标 掌握什么是负载均衡及负载均衡的作用和意义. 了解lvs负载均衡的三种模式. 了解lvs-DR负载均衡部署方法. 掌握nginx实现负载均衡的方法. 掌握lvs+nginx负载均衡拓扑结构 ...
- linux window nginx性能,Nginx负载均衡搭建(Window与Linux)
windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...
- Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点
Nginx负载均衡的配置,常用策略,场景,以及特点,放到这里是需要更细化的讲解,毕竟一期还没有做集群,而我们这一期做集群的时候,很多点要单独拿出来深入讲解,第一个轮询,默认的一个配置,简单也好理解,第 ...
- nginx负载均衡简单配置
nginx负载均衡简单配置 准备三台虚拟机来做这个实验: 172.16.160.99 web服务器 172.16.160.103 web服务器 172.16.160.98 ...
最新文章
- open AI 在DOTA 5v5 比赛中战胜职业选手
- 霸王洗发水经理被指冲击报社殴打记者
- Android--近来学习总结(2017/3/27)
- 在C#调用C++的DLL简析(二)—— 生成托管dll
- 利用shell脚本监控网站状态
- Spring Integration –轮询文件的创建和修改
- 迪杰特斯拉算法的实现
- 运行时动态的开关 Spring Security
- 使用Tesseract-OCR识别图片中的文字并生成双层PDF
- GhostScript 沙箱绕过(命令执行)漏洞(CVE-2018-19475)复现
- 阿里云Blink介绍
- 计算机没有反应的时候怎么重启,电脑卡顿、没响应,如何安全重启计算机?
- 通信行业名词解释ID、MD、HW、SW
- 改进平滑滚动,修改音量调节级数实现音量微调【编译自XDA 适用于大部分设备】
- python绘制单列多色柱状图
- 漫谈Web Feed、RSS、原文链接和转贴
- 使用BL0942 计量芯片获取计量数据
- 我对响应式编程中Mono和Flux的理解
- 安装一台计算机的操作系统,一台电脑可以这样来同时安装XP和WIN7两种操作系统...
- ICP波长及分析校正