nginx概述

nginx特点

  • 反向代理
    • 反向代理服务器需要能处理大量并发连接。Nginx就可以,所以Nginx适合做反向代理服务器
  • 负载均衡
  • 动静分离
    • Nginx实例处理大并发,时候做作为静态服务器,如果有动态请求,可以转发给上游服务器处理
    • 静态内容
      • 资源:图片,音乐,视频,
      • html,JavaScript,css
    • 动态内容:各种语言写的服务程序
  • 高性能、高并发
    • 单机Nginx可以轻松10w连接,如果机器性能还行,10w还远不是瓶颈。
    • Nginx使用reactor模式,一个进程可以处理多个请求。这与Apache服务器不同。
      • Apache服务器一个进程处理一个请求,所以通常会有几百个工作进程去处理请求,这样进程间切换的开销也会比较大。
      • Nginx一个worker进程处理的请求数量取决于内存大小,一般Nginx开启的worker进程数量等于机器CPU的核心数(最好每一个worker进程绑定一个cpu核心,可以使用worker_cpu_affinity参数进行绑核(这个配置仅仅对linux操作系统有效)),这样进程间切换的代价非常小。
      • Nginx一个worker进程内部也只有一个线程,所以Nginx使用全异步的方式来处理请求。
  • Nginx核心框架非常小巧(1.22.1版本的Nginx核心源码只有7M多点,而uwsgi源码都有6M)。所以Nginx主要功能都由模块来实现
  • Nginx也是master进程+worker进程的方式启动
    • master进程不会对用户请求提供服务,而是用于提供管理服务,和监控worker进程,当worker进程挂掉,会拉起worker进程(和uwsgi的master进程类似);也为管理员提供命令行服务,如:启动服务、停止服务、重载配置文件等。
    • worker进程是真正处理用户请求的进程。
  • 热部署
    • nginx支持代码热部署(不停机更新二进制文件)、日志重新加载(可以实现日志轮转)、配置热加载。
    • 日志重新加载(可以实现日志轮转)、配置热加载很多服务器应该也要支持。

安装

  • centos:yum install nginx
  • 也可以在官网下载源码tar包去安装
    • ./configure && make && make install 即可

操作

使用systemctl管理的操作

  • 启动
    • sudo systemctl enable nginx
    • sudo systemctl start nginx
  • 停止
    • sudo systemctl stop nginx
  • 检查状态
    • sudo systemctl status nginx

使用源码包安装的操作

  • 启动
    • ./nginx
  • 更改配置重启nginx
    • ./nginx -s reload
  • 关闭
    • ./nginx -s stop
  • 判断配置文件是否正确
    • nginx -t -c /usr/local/nginx/conf/nginx.conf
    • 或者./nginx -t

nginx源码

nginx-1.22.1版本有198427行c代码(包含头文件)。约20w代码了。

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值