nginx概念

nginx概念

一、什么是nginx
1.nginx是一个开源且高性能,可靠的HTTP中间件代理服务。
2.中间件:对web可以实现集群,缓存服务,安全应用起到中间代理的作用。
3.常见的中间件服务:Apache,IIS,Nginx。


二、Nginx特性
1.跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows的移植版本。
2.配置异常简单,非常容易上手。配置风格跟程序开发一样,神一般的配置。
3.非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数.(这得益于Nginx使用了最新的epoll模型)。
4.事件驱动:通信机制采用epoll模型,支持更大的并发连接。
5.master/worker结构:一个master进程,生成一个或多个worker进程。
6.内存消耗小:处理大并发的请求内存消耗非常小。在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M)。
7.成本低廉:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。
8.内置的健康检查功能:如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。
9.节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。
10.稳定性高:用于反向代理,宕机的概率微乎其微。


三、Nginx工作原理
1.Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。
2.接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。
3.master 进程能监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动启动新的 worker 进程。


四、Nginx目录结构
├── client_body_temp
├── conf                             # Nginx所有配置文件的目录
│   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
│   ├── fastcgi_params               # fastcgi的参数文件
│   ├── fastcgi_params.default       # 所有结尾为default的文件都是备份文件
│   ├── mime.types                   # 媒体类型
│   ├── mime.types.default  
│   ├── nginx.conf                   # Nginx主配置文件
│   ├── nginx.conf.default
│   ├── scgi_params                  # scgi相关参数文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi临时数据目录
├── html                             # Nginx默认站点目录
│   ├── 50x.html                     # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│   └── index.html                   # 默认的首页文件
├── logs                             # Nginx日志目录
│   ├── access.log                   # 访问日志文件
│   ├── error.log                    # 错误日志文件
│   └── nginx.pid                    # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp                       # 临时目录
├── sbin                             # Nginx命令目录
│   └── nginx                        # Nginx的启动命令
├── scgi_temp                        # 临时目录
└── uwsgi_temp                       # 临时目录


五、Nginx编译参数
 
--prefix=PATH 设定安装目录
 
--sbin-path=PATH 设定程序文件目录
 
--conf-path=PATH 设定配置文件(nginx.conf)目录
 
--error-log-path=PATH 设定错误日志目录
 
--pid-path=PATH 设定pid文件(nginx.pid)目录
 
--lock-path=PATH 设定lock文件(nginx.lock)目录
 
--user=USER 设定程序运行的用户环境(www)
 
--group=GROUP 设定程序运行的组环境(www)
 
--builddir=DIR 设定程序编译目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一个开源的高性能HTTP和反向代理服务器,它也可以作为电子邮件(IMAP/POP3)代理服务器、以及通用的TCP/UDP代理服务器。下面是Nginx概念和技术架构: 1. Nginx架构:Nginx采用了基于事件驱动的异步非阻塞架构,主要由一个Master进程和多个Worker进程组成。Master进程负责接收和处理来自客户端的请求,而Worker进程负责实际处理请求并返回响应。 2. 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发给后端的多个服务器。通过反向代理,Nginx可以实现负载均衡、缓存加速、SSL终端等功能。 3. 静态文件服务:Nginx可以快速地处理静态文件的请求,并且支持文件的压缩传输和断点续传等功能。这使得Nginx成为一个高效的静态文件服务器。 4. 动态内容处理:Nginx可以通过与各种后端应用程序(如FastCGI、uWSGI、PHP-FPM等)的协作,实现对动态内容的处理和分发。这使得Nginx能够处理动态网页、API请求等。 5. 高并发连接支持:由于Nginx采用了事件驱动的非阻塞模型,它可以高效地处理大量的并发连接。这使得Nginx成为一个高性能的服务器,适用于处理高并发的Web应用。 6. 模块化拓展:Nginx支持模块化的设计,可以通过第三方模块扩展其功能。例如,Nginx提供了许多常用的模块,如HTTP代理模块、负载均衡模块、缓存模块等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值