Nginx工作原理

Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block(location是Nginx配置中的一个指令,用户URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx的模块从结构上分为核心模块、基础模块和第三方模块;
核心模块:HTTP模块、EVENT模块和MAIL模块
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块;
第三方模块:HTTP Upstream Request Hash模块、Notice模块和Http Access Key模块。
Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。Nginx采用epoll模型,异步非堵塞,二apache采用的是select模型;
Select特点:select选择句柄的时候,是比那里所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取哪些句柄有事件通知,因此效率是非常低。
epoll的特点:epoll对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高。

Nginx安装在windows上

官方网站下载地址:nginx下载

如下图所示,分为主线版本、稳定版本、历史版本,下载对应的版本的nginx压缩包,解压到自己电脑上存放软件的文件夹中即可

高性能web服务器之Nginx服务器学习系列二_数据
高性能web服务器之Nginx服务器学习系列二_java_02
双击nginx.exe即可启动nginx,默认的监听端口为80,启动后浏览器访问http://localhost如果出现下图就是启动成功了!
高性能web服务器之Nginx服务器学习系列二_句柄_03

nginx基本命令

//强制停止nginx服务器,如果有未处理的数据,丢弃
 nginx -s stop

//优雅的停止nginx服务器,如果有未处理的数据,等待处理完成之后停止
nginx -s quit
//重启命令
nginx -s reload

-END-

如果你喜欢我的分享,欢迎关注微信公众号 java学长分享技术干货!

悄悄告诉你免费赠送重磅互联网架构师教程,提升职场技术水平!

高性能web服务器之Nginx服务器学习系列二_java_04