nginx基础1——工作原理、安装配置、命令参数

这篇具有很好参考价值的文章主要介绍了nginx基础1——工作原理、安装配置、命令参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基本了解

nginx简介:

  1. nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。
  2. nginx由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。
  3. nginx第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
  4. nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

1.1 特性优点

nginx特性:

  1. 在高连接并发的情况下,nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应。
  2. 使用epoll and kqueue作为开发模型。
  3. nginx作为负载均衡服务器:nginx既可在内部直接支持和PHP程序对外进行服务,也可支持作为HTTP代理服务器对外进行服务。
  4. nginx采用C进行编写,不论系统资源开销还是CPU使用效率都比Perlbal要好很多

nginx优点:

  1. 高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数。
  2. 内存消耗少:在3万并发连接下,开启的10个nginx进程才消耗150M内存(15M*10=150M)。
  3. 配置文件非常简单:风格跟程序一样通俗易懂。
  4. 成本低廉:nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。
  5. 支持Rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组。
  6. 内置的健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问。
  7. 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。
  8. 稳定性高:用于反向代理,宕机的概率微乎其微。
  9. 模块化设计:模块可以动态编译。
  10. 外围支持好:文档全,二次开发和模块较多。
  11. 支持热部署:可以不停机重载配置文件。
  12. 支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化

1.2 功能应用

nginx基本功能:

  1. 静态资源的web服务器,能缓存打开的文件描述符。
  2. http、smtp、pop3协议的反向代理服务器。
  3. 缓存加速、负载均衡。
  4. 支持FastCGI(fpm,LNMP),uWSGI(Python)等。
  5. 模块化(非DSO机制),过滤器zip、SSI及图像的大小调整。
  6. 支持SSL。

nginx扩展功能:

  1. 基于名称和IP的虚拟主机。
  2. 支持keepalive长连接。
  3. 支持平滑升级。
  4. 定制访问日志、支持使用日志缓冲区提高日志存储性能。
  5. 支持URL重写。
  6. 支持路径别名。
  7. 支持基于IP及用户的访问控制。
  8. 支持速率限制,支持并发数限制。

nginx应用类别:

  1. 使用nginx结合FastCGI运行PHP、JSP、Perl等程序。
  2. 使用nginx作反向代理、负载均衡、规则过滤。
  3. 使用nginx运行静态HTML网页、图片。
  4. nginx与其他新技术的结合应用。

1.3 工作模块分类

基本了解:

  • nginx由内核和模块组成。内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
  • location是nginx配置文件中的一个参数,指定网页访问的根地址,location参数后面指定要访问的网页文件路径。
  • nginx的模块从结构上分为核心模块、基础模块和第三方模块

模块分类:

  • 核心模块:HTTP模块(访问网站)、EVENT模块(记录事件)、MAIL模块(发送邮件)等。
  • 基本模块:HTTP Access模块(访问)、HTTP FastCGI模块(lnmp)、HTTP Proxy模块(反向代理)、HTTP Rewrite模块(重定向URL)。
  • 第三方模块:HTTP Upstream模块、Request Hash模块、Notice模块和HTTP Access Key模块。

注意事项:

  1. 基本模块在编译时默认是开启状态,不能被禁用。
  2. 基本模块包括:
    • 核心模块(提供基本功能和指令),常见核心模块指令大部分是放置在配置文件的顶部,需要顶行写,不能有空格和括号包含关系。
    • 事件模块(Nginx内配置网络使用的能力),常见的events(事件)模块指令,大部分是放置在配置文件的顶部。
    • 配置模块(提供包含机制),指主配置文件中可以通过引用其他路径下的配置文件参数实现功能,可以简化配置文件,方便阅读。
功能模块分类 作用
Proxies(代理器模块) 就是nginx的HTTP Upstream之类的模块,主要与后端服务比如fastcgi等操作交互,实现服务代理和负载均衡等功能。
Handlers(处理器模块) 此类模块直接处理请求,并进行输出内容和修改headers信息等操作。handlers处理器模块一般只能有一个。
Filters(过滤器模块) 此类模块主要对其他处理器模块输出的内容进行修改操作,最后由nginx输出。

1.4 模块配置方法

  • 官方核心模块配置文档

1.如下图。这个核心模块参数可以配置在配置文件中的events中的括号里。
nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux
2.如下图。这个配置参数只能单独写一行,且顶行写,不能存在任何一个括号里。
nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux
3.如下图。这个配置参数可以配置在main, http, mail, stream, server, location任意位置。

  • main:对本机所有网站生效。
  • http:对所有server网站生效。
  • server:对某一个网站生效。
  • location:对某一个网站中的某一个访问页面生效。

nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

二、工作原理

基本了解:

  • nginx的模块直接被编译进nginx,属于静态编译。若要使用其他模块功能时,再添加模块编译,属于动态编译。
  • 启动nginx后,nginx的模块被自动加载,与Apache不一样,首先将模块编译为一个so文件,然后在配置文件中指定是否进行加载。
  • 在解析配置文件时,nginx的每个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。

nginx进程架构:

  1. 启动nginx时,会启动一个Master进程,这个进程不处理任何客户端的请求,主要用来产生worker线程。
  2. 每个worker线程下有多个工作模块,根据不同的客户端请求,各个工作模块分别对应处理一个请求。
  3. 当客户端请求web网站时,实际上是请求master进程产生的worker线程中的工作模块。
    nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

HTTP请求和响应的过程:

  1. 客户端发出请求,经过负载均衡高可用代理服务器后,到达某一台nginx服务器。
  2. nginx程序收到请求后,选择一个处理器模块进行处理,再通过过滤器模块生成请求内容,再继续宁内容处理。
  3. 最后将处理结果发送给客户端。
    nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

WEB服务请求步骤:

  1. 客户都安访问网站url,比如访问的是80端口,就需要建立tcp连接进行三次握手。
  2. 建立连接后,nginx服务端收到客户都安请求,开始调用处理器模块处理请求,根据客户端的请求去寻找资源。
  3. 找到资源后,就开始输出结果,建立响应报文,最后发送给客户端。
  4. 最后,nginx服务端记录整个过程的日志。
    nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

三、安装与配置

  • 下载地址

1.创建系统用户nginx。

useradd -r -M -s /sbin/nologin nginx

2.安装依赖包。

yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make
yum -y groups mark install 'Development Tools'

3.创建日志存放目录。

mkdir -p /var/log/nginx
chown -R nginx.nginx /var/log/nginx

4.下载nginx安装包,,解压,编译安装。

wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0

//编译模块。
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log

//安装。
make -j $(nproc) && make install

5.配置环境变量,启动nginx服务。

echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
source /etc/profile.d/nginx.sh

//启动。
nginx

6.访问web网页。

nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

四、常用命令

参数 释义
-t 检查配置文件语法
-v 输出nginx的版本
-c 指定配置文件的路径,启动nginx时可以指定其他配置文件。
-s 发送服务控制信号,可选值有stop、quit、reopen、reload。
-V 编译时使用的参数

1.检查使用的配置文件语法是否正确。
nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux

2.查看nginx已编译安装的模块。若要继续添加模块,则需要把已安装的模块一起写进去编译。
nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux
3.重启nginx服务,一般都是先停止,再重新启动。
nginx基础1——工作原理、安装配置、命令参数,nginx,nginx,运维,linux
4.重新读取配置文件。文章来源地址https://www.toymoban.com/news/detail-573258.html

nginx -s reload

到了这里,关于nginx基础1——工作原理、安装配置、命令参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux安装nginx,配置系统文件,配置systemctl命令,亲测可用,

    先安装gcc-c++编译器 安装pcre包 安装zlib包 在/usr/local/创建nginx文件 进入nginx目录 下载nginx安装包 注:如果没有wget命令,就安装命令 解压安装包 执行以下三个命令 添加到系统服务中 最后加入配置 重载配置 添加systemctl命令 添加内容 重新加载系统服务 启动服务 停止服务 重启

    2024年02月02日
    浏览(58)
  • 【运维知识大神篇】超详细的ELFK日志分析教程4(ES读写文档原理+集群角色+master节点与数据节点分离+Logstash安装部署+Logstash采集本地文件+采集Nginx日志)

    本篇文章继续给大家介绍ELFK日志分析的有关内容,我们的ES和Kibana都介绍的差不多了,所以本篇文章重点介绍Logstash的有关内容,介绍完毕后,我们的ELFK架构将初步形成,此外还有ES读写文档的原理,了解原理,更深层次的理解,使用ES,集群角色和master节点与数据节点分离,

    2024年02月02日
    浏览(56)
  • 三、Docker:Compose安装、使用、文件结构、配置参数与命令详解

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus     Docker-compose 是用于定义和运行多容器 Docker 应用程序的编排工具。使用 docker-compose 后不再需要逐一创建和启动容器。可以使用YML文件来配

    2024年02月10日
    浏览(45)
  • SSH工作原理&Ubuntu20.04安装并配置SSH&设置SSH免密登录

    目录 一、SSH的介绍(服务器端,客户端) 1、SSH(远程连接工具)连接原理: 2、SSH的安全机制 3、两种级别的验证方法(登录方法) 二、ssh的安装与启动 1、安装 2、启动服务器的SSH服务 三、SSH客户端 1、前置知识 2、口令登录 1)、登录命令 2)、验证过程 3)、登录失败:1、

    2024年02月03日
    浏览(86)
  • Nginx工作原理

    本文分享自天翼云开发者社区《Nginx工作原理》,作者:王****秀 Nginx的进程模型 Nginx服务器由一个Master进程和多个Worker进程组成: Master进程:管理Worker进程。对外接口:接收外部的操作(信号);对内转发:根据外部操作的不同,通过信号管理Worker;监听:监控Worker进程的运

    2024年02月08日
    浏览(37)
  • Nginx 工作原理简介

    在了解Nginx工作原理之前,我们先来了解下几个基本的概念 以及常见的I/O模型。 同步 :就是指调用方发起一个调用,在没有得到调用结果之前,该调用不返回。换句话说,也就是调用方发起一个调用后,一直等待被调用方返回结果,直到获取结果后才执行后续操作。 生活中

    2024年02月04日
    浏览(46)
  • 【基础篇】Nginx安装 SSL模块、配置 HTTPS详细步骤

    nginx安装 1、查看 nginx是否安装 http_ssl_module 模块 如果出现 configure arguments: –with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 SSL 证书部署、nginx.conf 配置)。 否则按下述执行命令。 2、进入nginx源码包,重新执行下面命令,重新编译安装三部曲 3、上述命令执行完以后

    2023年04月16日
    浏览(55)
  • 【运维安全】运维界葵花宝典:Nginx配置与优化秘籍

    必要的原理介绍 ● Nginx 里有一个master进程和多个worker进程.master进程并不处理网络请求,主要负责调度工作进程: 加载配置,启动工作进程及非停升级.worker进程负责处理网络请求与响应. ● master进程主要用来管理worker进程,具体包括如下4个主要功能: 接收来自外界的信号 向各wo

    2024年02月21日
    浏览(46)
  • 稳压二极管工作原理、重要参数意义和典型电路参数计算

    稳压二极管的工作原理:稳压二极管也叫稳压管,它在电路中一般起到稳定电压的作用,也可以为电路提供基准电压值。稳压二极管使用特殊工艺制造,这种工艺使它在反向击穿时仍然可以长时间稳定工作,不损坏,而工作在反向击穿状态的稳压管只要工作电流保持在一定范

    2024年02月13日
    浏览(46)
  • Linux下Web服务器工作模型及Nginx工作原理详解

    在Linux环境下,Web服务器处理并发连接请求的工作模型主要有阻塞、非阻塞、同步、异步等方式。以下是对各种工作模型的浅析: 同步阻塞 I/O: 类比于在餐厅等饭,需要在取餐处等待,期间不能进行其他事情。 同步非阻塞 I/O: 类比于在餐厅等饭,可以进行其他事情,但需

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包