1、nginx简介
Nginx是一款 http 服务器 (或叫web服务器)。它是由俄罗斯人伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,并于2004年首次公开发布的。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。
Nginx 是什么,总结一下就是这些:
①一种轻量级的web服务器
②设计思想是事件驱动的异步非阻塞处理(类node.js)
③占用内存少、启动速度快、并发能力强
④使用C语言开发
⑤扩展性好,第三方插件非常多
⑥在互联网项目中广泛应用
2、工作原理
2.1 反向代理
反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。对于客户端来说,反向代理就相当于目标服务器,只需要将反向代理当作目标服务器一样发送请求就可以了,并且客户端不需要进行任何设置。
2.2 负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行。
nginx提供轮询法、weight权重模式、ip_hash等多种负载均衡方法,方便用户根据自己需求进行选择。
2.3 动静分离
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式。
上图中,location的root地址即为我们设置的静态资源地址。
3、下载运行
Nginx 是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下。而在开发过程中,我们常常需要在window系统下使用Nginx作为Web服务器。
(1)去到Nginx官网:http://nginx.org/,然后点击“download”
(2)在下载界面选择自己想要下载的版本,点击对应版本,下载Nginx。
(3)Nginx的压缩包下载完成。
(4)解压压缩包到指定文件夹。
( 5)在nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果本地电脑的80端口有被占用,如果本地80端口已经被使用则修改成其他端口。
查看80端口是否被占用的命令
netstat -ano | findstr 0.0.0.0:80
或
netstat -ano | findstr "80"
(6)启动Nginx
直接双击Nginxm目录下的nginx.exe,双击后一个黑色的弹窗一闪而过就消失了,启动就完成了。
或者打开电脑的cmd命令窗口,然后切换到nginx目录下,输入命令nginx.exe或者start nginx ,回车即可完成启动。
(7)查看nginx是否成功开启
直接在浏览器地址栏输入网址:http://localhost:80(如果上面修改了其他端口,就将80改成其他端口数),然后点击回车,出现以下页面说明启动成功。
4、关闭nginx
①:在cmd命令窗口里面输入nginx命令(快速停止nginx) :
nginx -s stop
或者使用(完整有序的停止nginx)命令:
nginx -s quit
②:使用taskkill命令:
taskkill /f /t /im nginx.exe
5、nginx配置
找到nginx在电脑的安装位置,找到conf->nginx.conf即为nginx的配置文件。
打开后会发现,配置文件基本都有相关文字说明,方便我们进行配置。
这里主要介绍负载均衡,我们可以选择我们项目需要的负载均衡模式,如我们需要ip_hash配置,可以这样配置 ,其中8034、8035和8036是我们需要占用的端口号,要保证这些端口号没有被其他应用占用。
剩下的主机配置,包括域名配置,静态资源地址配置按需配置即可
今天就大概介绍这么多吧。