一、什么是nginx
nginx是一款高性能的http服务器/反向代理服务器及电子邮件代理服务器。
官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗缺非常低,运行非常稳定。
二、nginx的应用场景
1.http服务器。nginx是一个http服务器,可以独立提供http服务。可以做网页静态服务器。
2.虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3.反向代理,负载均衡。当网站的服务量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
反向代理:(Reverse Proxy)指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
通常的代理服务器:只用于代理内部网络对internet的连接请求,客户机必须指定代理服务器,并将本来直接要发送到web服务器上的http请求发送到代理服务器中,由代理服务器向internet上的web服务器发起请求,最终达到客户机上的目的。
负载均衡:(load Balance)分摊到多个操作单元上进行执行,从而共同完成工作任务。负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
配置nginx负载均衡:
upstream myServer{ //定义负载均衡设备的ip及设备状态
server 127.0.0.1:9090 down;
server 127.0.0.1:6060 weight=2;
server 127.0.0.1:7070;
server 127.0.0.1:8080 backup;
}
在需要使用负载的Server节点下添加:
proxy_pass http://myServer;
upstream每个设备的状态:
down:表示当前的server暂时不参与负载
weight默认为1,weight越大,负载的权重就越大。
max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误fail_timeout:max_fails次失败后,暂停的时间。
backup:其他所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
三、nginx的优缺点
1.占内存小,可以实现高并发连接,处理响应快。
2.可以实现http服务器、虚拟主机、反向代理、负载均衡。
3.nginx配置简单
4.可以不暴露真实服务器IP地址。