Nginx简介
Nginx是一个高性能的Http和反向代理服务器,特点是占有内存少,并发性能强。
正向代理与反向代理
正向代理:例如用户通过浏览器访问Google,直接访问是访问不到的,我们所使用的科学上网工具访问Google,就是一种正向代理:用户通过科学上网工具访问代理服务器,然后代理服务器去访问Google,将获取到的数据再返回给用户。
反向代理:用户通过访问反向代理服务器,由反向代理服务器将请求分发给不同的服务器。用户对真正提供服务的服务器是无感知的,暴露给用户的是反向代理服务器,隐藏了真正提供服务的服务器。
负载均衡
随着访问网站访问并发量的增大,可以将原来的单体架构进行拆分,增加多台服务器,在用户访问服务器之前先访问反向代理服务器,由反向代理服务器将多个请求分发到多台服务器上,将负载分发到不同的服务单元,既保证了服务发可用性,也加快了请求的响应时间。
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析的速度,降低原来单个服务器的压力。
Windows下安装与启动
下载完成后直接解压,命令行进入nginx.exe
所在的文件路径,使用命令行执行相关命令
1 | # 启动服务 |
启动后直接访问localhost:80
Nginx配置文件
全局块:从配置文件开始到
events
之间的内容,主要影响nginx
服务器整体运行的配置指令
1 | # 表示可以支持的最大并发量 |
events块:主要影响
nginx
服务器与用户的网络连接
1 | # 表示支持的最大连接数 |
http
块:配置最频繁的部分,nginx的主要功能就是在这里配置,包括http
全局块和server
块
在Nginx上部署前端项目,并通过反向代理的方式,实现跨域
1 | server { |
在访问http://localhost:8080
时,实际访问的是Nginx
根目录下的wms_front/index.html
;http://localhost:8080/wms/
下的所有请求都会转发到http://localhost:8081/wms/
负载均衡配置:
在http
块添加:
1 | upstream myserver{ |
nginx分配策略:
1、轮询
每个请求按照时间顺序逐一分配到不同的服务器,如果后端服务器宕机,则自动剔除。2、权重
weight
表示权重,默认为1,权重越高被分配的客户端越多 。3、ip_hash
每个请求按访问ip
的hash
结果分配,这样每个ip
固定访问一个服务器,可解决session
问题。4、fair
按后端服务器的响应时间分配,响应时间短的,优先分配。
Nginx原理
在nginx
启动后,会有一个master
进程和多个worker
进程,master
进程主要用来管理worker
进程,包括:接受信号,将信号分发给worker
进程,监听worker
进程工作状态,当worker
进程退出时(非正常),启动新的worker
进程。基本的网络事件会交给worker
进程处理。多个worker
进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。