详解Nginx 工作原理

yizhihongxing

下面是“详解Nginx 工作原理”的完整攻略,包含两条示例说明:

详解Nginx工作原理

Nginx的基本工作原理

Nginx是一款轻量级高性能的Web服务器和反向代理服务器,有着很强的并发处理能力和丰富的功能。下面详细讲述Nginx的基本工作原理:

  1. Nginx启动后,首先会创建一个master进程和多个worker进程。

  2. master进程主要用于接收来自外部的信号和命令,例如关闭Nginx、重新加载配置文件等等。

  3. worker进程用于处理客户端的请求。每个worker进程都是独立的,相互之间不共享内存,可以独立处理并发请求,从而保证Nginx的高并发处理能力。

  4. 当有请求到达Nginx时,它会首先经过master进程,由master进程将请求分配给worker进程,然后由worker进程处理请求。

  5. 处理完成后,worker进程会将处理结果返回给master进程,由master进程将结果返回给客户端。

  6. 在处理请求的过程中,Nginx还会根据配置文件中的规则进行负载均衡、静态文件缓存等操作来提高性能和可靠性。

示例1:多服务器负载均衡

Nginx可以实现多服务器负载均衡,将来自客户端的请求分发到多台服务器上进行处理。下面是实现多服务器负载均衡的示例配置:

http {
  upstream myapp {
    server 192.168.1.1:8080;
    server 192.168.1.2:8080;
    server 192.168.1.3:8080;
  }
  server {
    listen 80;
    location / {
      proxy_pass http://myapp;
    }
  }
}

在这个配置中,upstream指令定义了一组服务器,每个服务器都有一个IP地址和端口号。server指令用于指定每台服务器的地址和端口号。proxy_pass指令将客户端请求转发到upstream中定义的服务器组中。

示例2:静态文件缓存

Nginx可以通过缓存静态文件来提高性能和减少网络带宽的使用。下面是实现静态文件缓存的示例配置:

http {
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
  server {
    listen 80;
    location / {
      proxy_pass http://backend;
      proxy_cache my_cache;
      proxy_cache_valid 200 60m;
      proxy_cache_valid 404 1m;
      add_header X-Cache-Status $upstream_cache_status;
    }
  }
}

在这个配置中,proxy_cache_path用于指定缓存路径和大小。proxy_cache用于指定缓存的名称,名称相同的缓存指定相同的参数。proxy_cache_valid指令用于设置缓存的有效期,如果缓存超过有效期没有被使用,就会被删除。add_header指令用于添加自定义HTTP头,可以用于查看缓存状态。

总结

本文详细讲解了Nginx的基本工作原理,以及两个实用的示例。希望读者可以通过本文了解Nginx的工作方式,进一步深入了解这款优秀的Web服务器和反向代理服务器。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Nginx 工作原理 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Centos 离线安装部署 Nginx

    1.首先安装依赖库 yum install -y gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel 2.下载nginx安装包http://nginx.org/download/ 3.将下载的nignx源…

    Nginx 2023年4月13日
    00
  • nginx host绕过的三种方式

    下面是详细讲解“nginx host绕过的三种方式”的完整攻略。 1. 修改Host头 首先,我们来说一下如何修改Host头绕过nginx。在用nginx做反向代理时,我们通常会修改nginx的配置文件,将Host头与后端服务器的域名匹配。这样,在客户端请求时,nginx收到请求后,会将请求转发到后端服务器上。 但是,如果攻击者通过修改请求的Host头,将H…

    Nginx 2023年5月16日
    00
  • Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法

    下面是详细讲解“Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法”的完整攻略。 1. 生成SSL证书 首先,我们需要生成SSL证书。一般情况下,我们会使用Let’s Encrypt等免费的证书颁发机构来获取证书。 以使用Certbot的方式获取为例,执行以下命令: sudo apt-get install certbot sudo certbot…

    Nginx 2023年5月16日
    00
  • 基于【 centos7】四 || FastDFS集群+Nginx负载均衡

    1.1 架构图 FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。   1.2 服务器配置 192.168.22.173  tracker-group1 192.168…

    Nginx 2023年4月10日
    00
  • CentOS 中Nginx的安装方法

    下面是 CentOS 中 Nginx 的安装方法。 安装前准备 由于 CentOS 系统默认安装 yum 软件管理器,所以我们可以使用 yum 命令安装 Nginx。在安装之前,我们需要更新 yum 软件包列表并安装一些必须软件包。 运行以下命令更新软件包列表: sudo yum -y update 在更新之后,我们需要安装一些必需软件包,以便能够顺利安装 …

    Nginx 2023年5月16日
    00
  • Nginx启动报错:10013: An attempt was made to access a socket in a way forbidden

    Nginx在win7,win2008下启动报错:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 。 原因是Win7下nginx默认80端口被System占用,造成ng…

    Nginx 2023年4月11日
    00
  • Nginx服务器设置黑名单屏蔽IP

    黑名单能有效防止某个IP恶意攻击或者拒绝特定IP的访问 步骤1 :创建黑名单 在/usr/local/nginx/conf下创建黑名单文件ip.black(叫啥都行)在文件内容写上列入黑名单的IP,格式为deny ip deny 192.168.41.218; deny 192.168.41.217;                             …

    Nginx 2023年4月16日
    00
  • 在nginx下配置PATH_INFO的方法,包含新老版本的设置方法,以及$_SERVER[PATH_INFO]和phpinfo()函数的使用方法

    要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能。 php中有两个pathinfo,一个是环境变量$_SERVER[‘PATH_INFO’];另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;。 …

    Nginx 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部