**声明:**该博客中部分内容图片取自https://www.bilibili.com/video/BV1F5411J7vK的up主以及菜鸟教程相关内容。
1、简介
Nginx 由俄罗斯访问量第二的rambler.ru站点设计开发的,首次发布于2004年10月,是一个高性能的HTTP和反向代理的web服务器,其主要特点为占用内存少,并发能力强,官方测试数据表明能支持50000各并发连接数的响应。安装简单、配置文件简洁(支持perl语法),而且可以做到24小时不间断运行,在不间断服务的情况下进行软件升级。
国内使用nginx的公司很多,如:百度、京东、新浪、淘宝等,虽然前端用到nginx的地方不是很多,大多只是配置个反向代理,但还是有必要学习一下nginx。
2、常见应用
① 正向代理
正向代理,是指客户端将请求发送给服务器,由于服务器在外网或其他原因,导致无法访问时,通过向代理服务器发送请求,并指真正的服务器地址,然后代理服务器代替客户端将请求发送给真正的服务器,返回值也是通过代理服务器进行传递。
特点:此时客户端知道真正的服务器IP,但服务端不知道客户端的IP,只知晓代理服务器的IP。因为与服务器进行交互的全都是代理服务器,相当于代理了客户端的身份,隐藏了客户端,解决了访问限制的问题。
常见应用:翻qiang、解决跨域问题等。
② 反向代理
反向代理,是指客户端直接将请求发送到代理服务器,然后由代理服务器根据配置的规则,将请求转发到真正要请求的服务器,服务器将结果返回给代理服务器,再由代理服务器返回给客户端。
特点:此时客户端不知道真正的服务器IP,只知道代理服务器的IP,服务器只知道代理服务器的IP,而不知道客户端的IP,将客户端和服务器分隔开。客户端并不知道自己访问的是代理服务器,但其交互全部来自代理服务器,相当于代理了服务器的身份,隐藏了真正的服务器。
应用:负载均衡(分布式部署)、内网的安全防护等。
③ 负载均衡
nginx通过反向代理提供的负载均衡策略有两种:内置策略和扩展策略。内置策略包括轮询、加权轮询、Ip hash等。而扩展策略就是天马行空,任何负载均衡算法,都可以使用。
**轮询策略:**有多台服务器时,代理服务器将接收的多个请求,按照顺序依次轮着发送给不同的服务器,分担请求压力。
**加权轮询策略:**有多台服务器时,在nginx配置文件中通过weight给所有服务器设置权重,权重越大,被分配到请求的可能越大。在代理服务器将接收的多个请求,按照顺序依次轮着发送给不同的服务器时,根据服务器的权重,决定承担的请求压力。
Ip hash策略: 根据客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
动静分离等等…
3、下载安装
下载地址:http://nginx.org/en/download.html。 进入下载页,选择自己电脑对应的稳定版本(Stable version),点击下载即可。
以windows系统为例:下载完成后,解压压缩包,得到nginx的相关文件,启动nginx的方法有两种:① 双击文件夹中的 nginx.exe 闪烁一下即可,因为启动过程不明显,其启动失败不易查找原因,所以我更推荐第二种方法。 ② 在该目录下,输入cmd,打开控制台,输入 nginx.exe ,回车执行即可。
进行启动操作后,在浏览器中输入:http://localhost:80 ,如果页面显示下图则说明,nginx启动成功:
**补充:**如果在通过方法二启动nginx时,控制台报错:
说明80端口被占用,我们只需要在控制台中输入:netsh http show servicestate
,查看共同进程的ID,然后打开任务管理器,选择服务,找到PID为共同进程的ID的服务,然后右键将其停止,最后在启动nginx即可。
未完待续…