Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
1.功能特点
- 反向代理
- 负载均衡
- 动静分离
并且Nginx能够支持高达 50,000 个并发连接数的响应,Nginx选择了 **epoll
**和 **kqueue
**作为开发模型。
2.反向代理
2.1正向代理
在客户端没办法直接访问的前提下,找一个服务器帮忙访问再将数据传回来,比如玩游戏的加速器VPN等。
可以看出来,正向代理是对客户端的代理,对服务端隐藏了访问者的信息,使得客户端不知道是谁需要访问。
2.2 反向代理
方向代理是在有多个服务端,客户端不知道该访问哪个的情况下,再增加一个服务器,对这些请求做一个转发。
反向代理是对服务端的代理,隐藏了服务端的信息,让客户端不知道访问了哪个服务端。
2.3 反向代理配置
2.3.1 配置文件
在Linux系统下,可以找到Nginx的配置文件,对其修改即可。不知道在哪可以使用命令:whereis nginx.conf。
在Windows系统下,修改下载位置的Nginx/conf/nginx.conf文件。
2.3.2 反向代理的配置
下面介绍一下怎么在里面配置反向代理。在 nginx.conf
中 http
代码块下进行如下配置:
当然由于跨域问题,上面的配置文件是没法访问的。大家懂了就行,毕竟也不会没事转发到百度去,更多的是转发到自己的服务器。
2.4 负载均衡
贴一个百度百科上的定义:负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
在这里就是指我们可以将反向代理时选择哪个服务器进行访问这一操作,进行更细致的规定。比如好的服务器就可以多接收一点访问,差一点的服务器就少接收一点。
在 nginx.conf
中 http
代码块下进行如下配置:
1.轮询(默认)
在这个策略下,每个请求会按照访问时间顺序逐一分配到不同的服务器,如果服务器down了,会自动剔除。
2.指定权重
在这种策略下,访问服务器的几率与weight
成正比,如果服务器的性能不平均,那么就可以使用这种策略。
3.IP地址绑定
在这种策略下,每次访问都按照 IP
地址的 hash
结果进行绑定,这样每个客户端都绑定了一个固定的服务器。如果一个服务器 down
了,需要手动剔除。
除了以上三种策略之外,还有一些第三方的策略,有需求的可以百度查找。
4.动静分离
详情百度。