上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计。master进程用来管理通过fork子进程与子进程通信。子进程通过处理进程信号接到master的通信去处理请求。

Nginx工作原理:

Nginx会按需同一时候执行多个进程:一个主进程和几个工作进程,配置了缓存时还会有缓存载入器进程(cache loader)和缓存管理器进程(cache
manager)等。全部进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。主进程以root用户身份执行,而worker、cache
loader和cache manager均应以非特权用户身份执行。

一、Nginx模块常规的HTTP请求和响应的过程:

当它接收到一个HTTP请求时。它不过通过查找配置文件将此次请求映射到一个location
block,而此location中配置的各个指令则会启动不同的模块去完毕工作。因此模块能够看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然。多个location能够服用同一个模块)。handler模块负责处理请求,完毕响应内容的生成,而filter模块对响应内容进行处理。

二、Nginx作为Http反向代理server的使用方法:

因为Nginx具有“强悍”的高并发高负载能力,因此通常会作为前段的server直接向client提供静态文件服务。

但也有一些复杂、多变的业务不适合放到Nginxserver上。这时会用Apache、Tomcat等server来处理。于是,Nginx通常会被配置为既是静态Webserver也是反向代理server,不适合Nginx处理的请求就会直接转发到上游server中处理。

Nginx作为HTTPserver以及反向代理server:

Nginx作为反向代理server时转发请求的流程:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1dGVuZ3RlbmcxMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Nginx减轻了上游server的并发压力。延长了一个请求的处理时间,并添加了用于缓存请求内容的内存和磁盘空间。

三、总结

Nginx是一个高性能的HTTP和反向代理server,也是一个IMAP/POP3/SMTPserver。

工作原理也非常easy,通过转发请求,分担压力,从而减轻server的压力,达到负载均衡的效果。

最新文章

  1. java生成excel文件
  2. join()方法
  3. 初识JSLint及建议JS编码风格
  4. Unix操作系统中UUCP知识详细讲解
  5. 细说jQuery原型的创建和实现原理,并用实例简单模仿
  6. Pycharm使用问题# Interpreter设置
  7. css绘制六边形
  8. js 高级函数 之示例
  9. 关于java环境变量配置出现javac命令无法运行的解决办法
  10. hdu 1241 Oil Deposits (简单搜索)
  11. SQLAlchemy 使用(一)创建单一model
  12. 嵌入式linux——说明(零)
  13. java excel大数据量导入导出与优化
  14. Java基础之循环语句、条件语句、switch case 语句
  15. [转]Qt中定时器使用的两种方法
  16. .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行
  17. MySQL Developer
  18. idea中mybatis generator自动生成代码配置 数据库是sqlserver
  19. nginx重启报错:nginx: [error] invalid PID number "" in "/run/nginx.pid"
  20. 3504: [Cqoi2014]危桥

热门文章

  1. Window7幻灯片字体显示混乱,难道真的是病毒么
  2. centos下yum安装lamp和lnmp轻松搞定
  3. HDU 1874 畅通project续 (最短路径)
  4. [C++设计模式] strategy 策略模式
  5. Sublime text3 Emmet使用
  6. 循环神经网络(RNN, Recurrent Neural Networks)介绍
  7. hadoop配置历史服务器
  8. 了解和解决SQL SERVER阻塞问题(copy)
  9. Android PullToRrefresh 自定义下拉刷新动画 (listview、scrollview等)
  10. iOS11即将到来,让我们具体了解下