一文快速搞懂Nginx——Nginx 详解

前言


什么是 Nginx?(详细介绍)
NGINX 是一个开源的 Web 服务器和反向代理服务器,它使用 Nginx 作为 Web 服务器和反向代理服务器的原因是它拥有高性能、可扩展性和可靠性。它可以处理大量的并发连接,并且可以缓存 HTTP 请求以提高性能。

Nginx具有以下功能: 

  1. 高并发处理能力:Nginx采用异步非阻塞的事件驱动架构,可以支持大量并发连接,快速响应客户端请求。
  2. 反向代理功能:Nginx可以作为反向代理服务器,接受Internet上的连接请求,然后将请求转发到内部网络上的服务器,并将结果返回给请求的客户端。这使得外部网络无法直接访问真实的服务器,增加了安全性。
  3. 负载均衡器:Nginx能够在多个Web服务器之间进行负载均衡,提高系统的可靠性和可用性。通过多种负载均衡策略,Nginx可以将流量合理分配到后端服务器,防止单点过载。
  4. 低资源消耗:Nginx在运行时占用的内存资源较少,适合在硬件资源有限的环境下部署,有助于降低硬件成本。
  5. HTTP缓存:Nginx可以缓存静态文件,如图片、CSS和JavaScript文件,从而减少对后端服务器的请求,加快网页加载速度。
  6. SSL/TLS加密:Nginx支持SSL/TLS协议,可以为网站提供安全的HTTPS服务,保障数据传输的安全性。
  7. 灵活的配置:Nginx具有高度模块化的设计,用户可以根据需要灵活配置,满足不同的应用场景需求。
  8. 社区支持:Nginx拥有一个活跃的开发和用户社区,提供丰富的文档和第三方模块,方便用户扩展和定制功能。

Nginx具有以下优点:

高性能:NGINX 可以处理大量的并发连接,并且可以将请求缓存以提高性能。
可扩展性:NGINX 可以轻松地扩展以处理更多的请求,并且支持多种插件和模块。

可靠性:NGINX 具有高可靠性,可以在没有管理员干预的情况下自动处理故障和恢复。
易于配置:NGINX 的配置非常简单,并且提供了丰富的文档和教程来帮助用户快速上手。

综上所述,Nginx以其高性能、稳定性、低资源消耗和丰富的功能,成为许多互联网公司和网站的首选服务器软件。无论是作为Web服务器直接提供服务,还是作为反向代理和负载均衡器辅助其他服务器处理请求,Nginx都能提供优秀的性能和可靠的服务。

下载安装使用

这里可以参考我写的另外几篇博客

Win环境:Windows下Nginx下载安装部署教程(实测有效)-CSDN博客 

Linux环境:Linux系统(CentOS)下安装配置 Nginx 超详细图文教程-CSDN博客

Nginx介绍

1.nginx配置文件详细说明:

#找到nginx的配置文件,编辑
vim /usr/local/nginx/conf/nginx.conf

#user  nobody;#运行nginx的默认账号
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes  1;
 
#事件区块开始
events {
    #单个进程最大链接数(最大连接数=连接数*进程数)
    #根据硬件调整,与前面工作进程配合起来用,尽量大,但别把CPU跑到100%就行,每个进程允许的最多连接数,理论上为每台nginx服务器的最大连接数
    worker_connections  1024;
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #include:导入外部文件mime.types,将所有types提取为文件,然后导入到nginx配置文件中。
    include       mime.types;
    #默认文件类型
    default_type  application/octet-stream;
    
    #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设置为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载,注意:如果图片显示不正常把这个改成off
    #sendfile指令指定,nginx是否调用sendfile函数(zero copy方式)来输出文件,对于普通应用,必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime
    sendfile        on;
    #长连接超时事件,单位是秒
    keepalive_timeout  65;
 
  
    #第一个server区块开始,表示一个独立的虚拟主机站点
    server {
        #提供服务的端口,默认80
        listen       80;
        #提供服务的域名主机名
        server_name  localhost;
 
        
        #对 “/” 启动反向代理,第一个location区块开始
        location / {
            root   html;    #服务默认启动目录,可以改成指定的目录位置
            index  index.html index.htm; #默认的首页文件,多个用空格分开
        }
 
        #错误页面路由
        error_page   500 502 503 504  /50x.html; # 出现对应的http状态码是,使用50x.html回应客户
        location = /50x.html { # location区块开始,访问50x.html
            root   html; # 指定对应的站点目录为html
        }
 
    }
 
 
}

2.nginx.conf分三大块去理解

可以把nginx.conf分为三个部分:全局块、events块、http区域

  • 全局区域:从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。必须上面的第一行配置。
  • events区域:events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多worker_process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个work process可以同时支持的最大链接数等。

  • http区域块:这块是Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。这里http块包含:http全局块、server 块。

其中http区域块是我们日常工作中使用最频繁的一部分了,静态资源的访问,负载均衡,反向代理都是在这一部分解决的。所以需要着重来介绍下这一块,这一块里面又分为http全局块server块。

  • http全局块:http全局块配置的指定包括文件引入、MIME-TYPE定义、日志自定义、连接超时事件、单链接请求数上限等。
  • server块:这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。每个server块也分为server全局块以及可以同时包含多个location块。
    • 全局server块:最常见的配置就是本虚拟机主机的监听配置和本虚拟机的名称或IP配置。
    • location块:一个server块可以配置多个location块。这块的主要作用就是基于nginx服务器接收到的请求字符串(例如:server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等共鞥,还有许多第三方模块的配置也可以在这里进行。

3.反向代理

反向代理是Nginx重要的功能之一,是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式客户端不直接与后端服务器进行通信,而是与反向代理服务器进行通信,隐藏了后端服务器的 IP 地址。

location /hoso { 
   proxy_pass  http://localhost:8088/hoso;
}

解读如下:就是如果遇到以/hoso请求开头的接口,就去访问这个IP地址的后端接口。

定义多个端口的反向代理,直接复制上面的,直接修改代理头和proxy_pass即可。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值