一、Nginx是什么?
**Nginx是一款高性能、轻量级的Web服务器和反向代理服务器。**
- 特点:Nginx采用事件驱动的异步非阻塞处理框架,内存占用少,并发能力强,资源消耗低。
- 功能:Nginx主要用作静态文件服务、负载均衡、正向代理和反向代理等,也可用于电子邮件(IMAP/POP3)代理服务。
- 应用场景:Nginx在互联网项目中被广泛应用,特别是在需要处理高并发请求的场景下,如百度、京东、腾讯、淘宝等大型网站。
二、正向代理与反向代理
在这里,用通俗易懂的方式解释一下:
代理服务器如果配置在客户端即为正向代理,如果配置在服务端即为反向代理。
正向代理代替客户端去发送请求,反向代理代替服务端接受请求。
举个正向代理的例子:假设现在有一台主机上不了网,可以通过nginx代理该主机上网,配置如下
javascript
server {
listen 80;
server_name 192.168.184.128;
location /proxy_baidu/ {
proxy_pass http://baidu.com/;
}
}
在浏览器中输入http://192.168.184.128/proxy_baidu 即可访问到百度主页
配置反向代理的例子:在一台服务器上部署两个tomcat,用nginx做反向代理(负载均衡),nginx配置如下
javascript
upstream tomcatcluster{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 8090;
server_name localhost;
location / {
proxy_pass http://tomcatcluster;
}
tomcat的两个端口为:8080,8081;nginx监听8090端口请求,将请求交给tomcat两个端口处理
下面在浏览器输入http://localhost:8090/ 就能访问到tomcat主页。
三、Nginx的负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
简单点来说:Nginx中的负载均衡是指nginx通过反向代理将客户端请求均匀分摊到多个上游应用服务器上,以提高性能、增加可用性、可扩展性和高并发处理能力。
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦。