当前位置:首页 > 技术文章 > 正文内容

Nginx详细介绍

arlanguage5个月前 (12-10)技术文章38

本期我们来说一说nginx

Nginx介绍

nginx是俄罗斯人lgor Sysoev(伊戈尔.塞索耶夫)开发的一款高性能HTTP和反向代理服务器。

Nginx以高效的epoll、kqueue、eventport作为网络IO模型,在高并发场景下、Nginx能够轻松支持5W并发连接数的响应,并且消耗的服务器内存、CPU等系统资源消耗却很低,运行非常稳定。

Nginx优化

当想要让nginx支持5W并发,甚至百万的并发,都是可以的,但需要做很多的优化工作,如:

想至少支持5W并发基本调优

1、服务器内存、CPU硬件支持,如8核16线程、32G内存的服务器

2、磁盘使用SSD、或者购买至少15000转SAS企业硬盘,做成RAID 0

3、安装光纤网口

4、使用linux系统,如centos 7,优化内核参数,对TCP连接的设置。

5、优化nginx.conf中并发相关的参数,如

worker_processes 16;

worker_connectins 50000;



国内著名站名,新浪博客、网易、淘宝、豆瓣、讯雷等大型网站都在使用Nginx作为web服务器或是反向代理。

如何不会配置nginx晓煜这边给大家推荐个网址。这里有前后端的nginx配置。

https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN


在企业他们都用Nginx做啥?

1.提供静态页面展示,网页服务  
2.提供多个网站、多个域名的网页服务
3.提供反向代理服务(结合动态应用程序)
4.提供简单资源下载服务(密码认证) ftp服务
5.用户行为分析(日志功能)

nginx是怎么运行的,他的运行流程是?

Nginx 的运行主要依赖于 master-worker 架构,其运行流程包括了请求的接收、分发处理和反向代理等环节。具体分析如下:

  1. Nginx的架构与进程
  2. Master进程:该进程负责读取和解析配置文件,管理其下的worker进程,处理信号以及进行热部署等工作。它通过fork系统调用创建worker子进程,实现与子进程的通信。
  3. Worker进程:这些进程由master进程fork生成,是实际处理客户端请求的执行者。每个worker进程互相独立,且都采用异步非阻塞方式处理请求,能够高效地处理大量并发连接。
  4. Nginx处理HTTP请求的阶段
  5. 初始化阶段:在Nginx启动后,master进程负责读取和解析nginx.conf配置文件,然后创建一定数量的worker进程。一般情况下,worker进程的数量与服务器的CPU核心数相等。
  6. 监听与接受阶段:worker进程开始监听指定的端口,等待客户端的连接请求。当一个连接到达时,其中一个worker进程会被唤醒来处理该请求。
  7. 处理请求头:在接收到请求后,worker进程开始读取和解析HTTP请求头,这一阶段主要是为后续的处理准备必要的信息。
  8. 请求处理阶段:根据请求的内容,Nginx会决定直接返回静态资源还是将请求反向代理给后端的应用程序服务器(如Tomcat)进行处理。
  9. 响应返回阶段:完成请求处理后,worker进程将响应发送回客户端,然后继续等待新的连接请求。
  10. Nginx的反向代理机制
  11. 静态内容处理:如果请求的是静态资源,Nginx可以直接从磁盘读取文件并返回给用户,这种处理方式简单快速,不需要经过后端应用处理。
  12. 动态内容处理:对于动态内容的请求,Nginx通常会将请求转发给后端的应用程序服务器来处理,例如将请求转发给Tomcat等应用服务器,并将应用服务器的响应返回给客户端。


扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/36.html

分享给朋友:

“Nginx详细介绍” 的相关文章

Nginx路由匹配规则location的小总结

使用过nginx的同学都知道,在nginx配置文件中通过location配置路由转发规则,配置语法为:location [=|~|~*|^~] /uri/ { ... }中括号中为路由匹配符号,常见的有:1 =:精确匹配 2 ^~:精确前缀匹配 3 ~:区分...

php高并发的瓶颈到底在哪

php高并发的瓶颈到底在哪?是同步阻塞?还是nginx+fpm不断创建-销毁进程资源过度消耗?高并发到底是什么问题,是语言问题嘛,为什么说php不适合高并发?求大佬指点从2009年后一直用lnmp,从5.2.17一直到现在的PHP7.4,做的项目无数个,大到日IP10W+、PV50W+的平台,小到日...

基于Docker一键LNMP(Nginx+MySQL+PHP7/5+Redis)安装程序

一键部署LNMP环境的目的,该环境特点:完全开源支持多版本PHP切换(PHP5.4、PHP5.6、PHP7.2...)支持绑定任意多个域名支持HTTPS和HTTP/2PHP源代码位于host中MySQL data位于host中所有配置文件可在host中直接修改所有日志文件可在host中直接查看内置完...

nginx+spring boot 微服务实现负载均衡

环境准备项目 JDK1.8 以上版本准备好 nginx 环境nginx 配置nginx 的配置文件在/usr/local/nginx/conf 目录下,配置文件 nginx.conf配置信息如下:upstream web_app { server 192.168.226.150:8089 ma...

Linux Shell

基本语法第一行第一行必须是 #!/bin/sh。它不是注释,#!/bin/sh 是对shell的声明,说明你所用的是那种类型的shell及其路径所在如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell如果脚本被编写为在Kornshell...

宝塔面板如何关闭https强制跳转http/https共存

宝塔面板如何关闭https强制跳转http/https共存在 宝塔面板 中,如果你需要关闭 HTTPS 强制跳转并实现 HTTP 和 HTTPS 共存,可以通过以下步骤完成配置:一、关闭 HTTPS 强制跳转登录宝塔面板进入宝塔后台,点击左侧菜单中的 网站。找到目标网站在网站列表中找到需要取消 HT...