news 2026/8/22 13:52:30

Nginx理论学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx理论学习

文章目录

    • 一、nginx相关内容
      • nginx是什么?可以实现什么功能?
      • 为什么要使用nginx?和它功能相似的APP有哪些?
      • nginx应用场景
      • nginx的架构原理
      • nginx的基本操作
        • nginx安装
        • nginx相关命令
        • Nginx相关的配置文件
        • Nginx访问方式

一、nginx相关内容

nginx是什么?可以实现什么功能?

nginx是一个http和反向代理的服务器 http服务器就是web服务器,web服务器使用nginx还是有一定缺陷的 因为nginx的轻量级导致它缺少很多的模块,没有办法满足现在的互联网 所以在现在我们一般使用的是基于nginx二层开发的web服务,例如tengine、openrusty; nginx现在最重要的是代理,nginx的代理有反向代理和正向代理 反向代理:四层代理【4层代理:使用NAT(Network Address Translation)技术,即网络地址转换】 七层代理【nginx读取并解析Http请求内容】

为什么要使用nginx?和它功能相似的APP有哪些?

#和nginx相似的有Apache IIS【微软的,IIS就相当于把你的机器变成一个服务器用来浏览网页】 Tomcat:运行JAVA的网络服务器 Lighttpd:开源Web服务器软件 openrusty:是一个基于 Nginx 与 Lua 的高性能 Web 平台#为什么我们需要使用nginx1、轻量并且高扩展 【轻量是因为它安装很快包小,高扩展是因为nginx是易读的方便开发人员二次开发使用】2、高性能和高并发 【高性能是指服务响应时间快,(CPU/处理器/内存)特别是在高并发下响应时间不会急剧增加】 【高并发是指短时间内遇到大量操作请求】3、高可靠 【高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定】3、占有内存少,并发能力强
#负载均衡有4中1、F5:硬件负载均衡;因为是硬件所以各方面表现是非常好的2、LVS:只支持四层的负载均衡,就是NAT技术,需要用在硬件环境中,和云环境是不兼容的,所以现在基本很少使用了,它的重点在于四种工作模式:dr:直接路由模式;tun:隧道模式;nat:路由转发模式;fullnat模式3、nginx:生态最好的,支持四层和七层,早期的时候默认只支持四层4、HAproxy:高可用代理,七层代理上比nginx具有更灵活的策略

nginx应用场景

nginx的架构原理

多进程模型

进程是操作系统资源分配到最小的单位,因为CPU数量是有限的,多个进程通过分配的时间获取CPU的使用权限

nginx采用master-worker的工作机制

master负责工作进程的配置加载、启停等相关的操作

worker负责处理具体的请求

worker之间是独立的,每一个工作进程处理多个连接

每一个连接有一个工作进程全权处理,不进行进程的切换,这样就不会产生进程切换导致的资源消耗问题

共享内存允许多个进程访问同一个内存地址,一个进程改变了内容之后,其他的进程可以使用改变了之后的内容

worker工作原理

模块化

1、核心模块 cron 提供的是nginx服务的基本功能,例如nginx的进程管理、CPU亲缘性、内存管理、配置文件和日志功能

2、事件模块: 负责进行连接处理

3、Http模块:提供Http处理的核心功能和部分功能模块

4、mail模块 提供邮件代理

5、Stream模块 提供TCP/UDP会话代理和负载的功能

6、upstream模块 提供七层代理和负载均衡的功能

nginx的基本操作

nginx安装

可以使用三种方式进行安装

1、源码安装

2、官方源安装 版本较新

3、epel源安装 版本比较低

#安装之前都是需要进行安装运行环境的yuminstall-y gcc gcc-c++ autoconf pcre pcre-devel zlib-devel openssl-develmake automakewgethttpd-toolsvimtree#使用官方源安装的,必须要有官方源配置# vim /etc/yum.repos.d/nginx.repo[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true
nginx相关命令
启动服务 nginx有两套管理方案1)自带的 启动nginx nginx 关闭nginx nginx -s stop 重载 nginx -s reload 测试语法 nginx -t 查看版本 nginx -v 查看携带模块及功能(源码安装的配置参数) nginx -V#systemd托管(建议)systemctl start|stop|restart|reload|status nginx 不能重叠使用#查看端口占用ss -lntp|grep:80netstat-lntp|grep:80 -l listen 侦听 -n 以数字方式显示,不做反向解析,提供查询效率 -t tcp -p 进程lsof-i:80#查看服务状态systemctl status nginx#查看进程状态psaux|grep[n]ginx
Nginx相关的配置文件
#配置文件路径:主配置文件 /etc/nginx/nginx.conf 整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束 子配置文件(配置站点)/etc/nginx/conf.d/*.conf 配置文件 Nginx的站点配置文件/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf 配置文件 Scgi、Fastcgi、Uwcgi配置文件 /etc/nginx/fastcgi_params /etc/nginx/scgi_params /etc/nginx/uwsgi_params 配置文件 Nginx编码转换映射文件 /etc/nginx/win-utf /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types 配置文件 http协议的Content-Type与扩展名 /usr/lib/systemd/system/nginx.service 配置文件 配置系统守护进程管理器 /etc/logrotate.d/nginx 配置文件 Nginx日志轮询,日志切割 Nginx终端管理命令 /usr/sbin/nginx /usr/sbin/nginx-debug 命令 目录 Nginx模块目录 /etc/nginx/modules /usr/lib64/nginx /usr/lib64/nginx/modules 目录 Nginx默认站点目录 /usr/share/nginx /usr/share/nginx/html /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.html Nginx的帮助手册 /usr/share/doc/nginx-1.12.2 /usr/share/man/man8/nginx.8.gz /var/cache/nginx 目录 Nginx的缓存目录 /var/log/nginx 目录 Nginx的日志目录
Nginx访问方式

1.通过服务器的IP直接访问(不推荐)

2.通过假域名方式访问(推荐方式)

Windows修改 C:\Windows\System32\drivers\etc\hosts

10.0.0.7 game.tf.com

3.使用ping命令测试域名解析是否正常

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 14:25:29

面对一个新领域,如何快速摸清门道?试试“一键生成”研究地图

当研究者初次踏入一个陌生领域时,常面临以下核心痛点:1. 信息分散且整合困难:学术文献、行业报告、技术动态散落在海量数据库中,难以快速提炼关键线索;2. 逻辑框架模糊:研究方向不明确,研究方法…

作者头像 李华
网站建设 2026/8/22 12:50:06

终极指南:5步实现全球付费内容免费阅读

终极指南:5步实现全球付费内容免费阅读 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取日益重要的今天,付费墙成为阻碍知识传播的主要障碍。Bypass …

作者头像 李华
网站建设 2026/8/22 2:06:55

GBase 8s数据库SYSTIMESTAMP表达式介绍(上)

在数据库开发中,获取和操作系统时间是一个常见的需求。GBase 8s 提供了 SYSTIMESTAMP 表达式,用于返回数据库系统的当前时间,包括年、月、日、时、分、秒和小数秒。本文将详细介绍 SYSTIMESTAMP 的使用方法、特点及实际应用示例,希…

作者头像 李华
网站建设 2026/8/21 7:06:35

zotero-style插件深度解析:从零打造高效文献管理生态

zotero-style插件深度解析:从零打造高效文献管理生态 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: …

作者头像 李华
网站建设 2026/8/21 19:59:25

5倍推理加速:Axolotl缓存策略如何终结重复计算瓶颈

在大语言模型推理实践中,重复提示词导致的冗余计算已成为性能优化的关键痛点。我们的测试表明,在批量处理场景下,相同输入的重复推理会浪费高达65%的GPU资源。本文将深度剖析Axolotl框架中的三种核心推理缓存策略,通过技术创新实现…

作者头像 李华