一、概述
Nginx是一款反向代理服务器。 Nginx 主要提供反向代理、负载均衡、动静分离(静态资源服务)等服务。
二、作用
反向代理
这里我们同时来讲讲正向代理,以便对比理解。
正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。正向代理比较常
见的一个例子就是 VPN了。正向代理隐藏了真正的客户端,服务端不知道真实的客户端是谁,也不需要知道真实的客户
端是谁,客户端请求的服务都被代理服务器代替来请求。
反向代理: 是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的
服务器,并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。反向代理隐藏了真实的服
务端,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服
务器是谁就好了。
简单的理解,就是正向代理是为客户端做代理,代替客户端去访问服务器,而反向代理是为服务器做代理,代替服务器
接受客户端请求。
反向代理的好处:
1、保护了真实的web服务器,web服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了web服务器的资源安全。
2、反向代理为基础产生了动静资源分离以及负载均衡的方式,减轻web服务器的负担,加速了对网站访问速度(动静资源分离和负载均衡会以后说)
3、节约了有限的IP地址资源,企业内所有的网站共享一个在internet中注册的IP地址,这些服务器分配私有地址,采用虚拟主机的方式对外提供服务
负载均衡
在高并发情况下需要使用,其原理就是将并发请求分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共
同完成工作任务,从而提高了数据的吞吐量。
Nginx支持的weight轮询(默认)、ip_hash、fair、url_hash这四种负载均衡调度算法,感兴趣的可以自行查阅。
负载均衡相比于反向代理更侧重的时将请求分担到多台服务器上去,所以谈论负载均衡只有在提供某服务的服务器大于两
台时才有意义。
Nginx在其中扮演着将服务请求分担到多台服务器上去,并且进行着反向代理的作用。
动静分离
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我
们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
三、Nginx优点
Nginx 有以下5个优点:
高并发、高性能(这是其他web服务器不具有的)
可扩展性好(模块化设计,第三方插件生态圈丰富)
高可靠性(可以在服务器行持续不间断的运行数年)
热部署(这个功能对于 Nginx 来说特别重要,热部署指可以在不停止 Nginx服务的情况下升级 Nginx)
BSD许可证(意味着我们可以将源代码下载下来进行修改然后使用自己的版本)
四、Nginx 的四个主要组成部分
Nginx 二进制可执行文件:由各模块源码编译出一个文件
Nginx.conf 配置文件:控制Nginx 行为
acess.log 访问日志: 记录每一条HTTP请求信息
error.log 错误日志:定位问题