Nginx的概念
1.什么是Nginx
Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师 algor Sysoev所开发,官方测试 Nginx能够支5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
2、什么是正向、反向代理
正向代理:
我是一个用户,我访问不了某网站,但是我能访问一个代理服务铅,这个代理服务器呢他能访问那个我不能访问的网站,于是我先连上代理服务器告诉他我需要那个无法访问网站的内容,代理服务器去取回来然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
反向代理:
反向代理( Reverse Proxy式是指以代理服务器来接Interme上的连接调求,然后将请求转发给内部网络上的服器,并将从服务器上得到的结果返回给 internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器.!
3.使用的业务场景
-
http服务器:
Nginx本身也是一个静态资源的服务翳,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
-
静态服务器:
在公司中经常会遇到静态服务器,通常会提供一个上传的功能,其他应用如果需要静态资源就从该静态服务器中获取
-
反向代理:
反向代理应该是 Nginx使用最多的功能了,反向代理( Reverse proxy方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务翳上得到的结果返回给 internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
-
负载均衡:
负载均衠也是 Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
-
动静分离:
动静分离是让动态网站里的动态网页根据定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
4.常见的负载均衡服务器
LVS:
1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;
3、工作稳定,自身有完整的双机热备方案;
4、无流量,保证了均衡器O的性能不会收到大流量的影响;
5、应用范围比较广,可以对所有应用做负载均衡;
Nginx:
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;
2、 Nginx对网络的依赖比较小;
3、 Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;
5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持ur来检测;
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;
7、NginxhttpEmail ,能支持http和mail,这样就在适用范围上面小很多;
8、不支持 Session的保持、对 Big request header的支持不是很好;
HAProxy
1、HAProxy是工作在网络7层之上。
2、能够补充 NginxSession的一些缺点比如的保持, Cookie的引导等工作
3、支持ur检测后端的服务器出问题的检测会有很好的帮助。
4、更多的负载均衡策略比如:动态加权轮循Dynamic Round Robin)加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash已经实现
5、单纯从效率上来讲 HAProxyNginx更会比更出色的负载均衡速度
5.Nginx内置负载策略
- 轮循(默认): Nginx根据请求次数,将每个请求均匀分配到每台服务器
- 最少连接:将请求分配给连接数最少的服务器。 Nginx会统计哪些服务器的连接数最少
- IP Hash:绑定处理请求的服务器。第一次请求时,根据该客户端的P算出一个HAH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理
Window部署Nginx
1.下载Nginx的安装包
下载地址:
http://nginx.org/en/download.html
2.把下载的安装包解压
3.启动nginx
启动语法:
start nginx
其他操作语法:
nginx -s [option]
option选项:
- stop — 快速停止
- qult — 完整体制
- reload — 重新加载
- reopen — 重新打开日志文件