news 2026/6/9 22:25:38

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/6/9 5:25:38

Nfs网络文件系统

文章目录 Nfs应用场景NFS实现的原理NFS配置文件NFS使用选项参数NFS存储数据的优缺点NFS实验实验要求实验环境实验步骤服务端:安装NFS服务并修改配置文件创建用户并授权启动服务 客户端安装nfs工具并启动本地挂载点目录文件创建对应用户查看远端的NFS共享目录是否存在…

作者头像 李华
网站建设 2026/6/9 15:20:29

Vue可视化打印插件实战指南:从零构建专业级打印应用

Vue可视化打印插件实战指南:从零构建专业级打印应用 【免费下载链接】vue-plugin-hiprint hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 项目地址: https://gitcode.com/gh_mirrors/vu/vue-plugin-hiprint 还…

作者头像 李华
网站建设 2026/6/8 21:48:00

计数dp详解

计数动态规划详解 计数动态规划(Counting Dynamic Programming),简称计数DP,是动态规划(DP)中专门用于解决计数问题的一类方法。其核心目标是通过定义合适的状态和状态转移方程,高效地计算出满足…

作者头像 李华
网站建设 2026/6/6 22:20:41

Zotero插件市场:一站式插件管理终极指南

Zotero插件市场:一站式插件管理终极指南 【免费下载链接】zotero-addons Zotero add-on to list and install add-ons in Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 核心价值:3步实现Zotero插件自动管理,让学…

作者头像 李华
网站建设 2026/6/9 18:49:33

MTKClient终极指南:3步解锁联发科设备的完整调试能力

MTKClient终极指南:3步解锁联发科设备的完整调试能力 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 对于需要处理联发科设备的用户来说,MTKClient无疑是一款革命性…

作者头像 李华
网站建设 2026/6/8 10:09:55

Lumafly模组管理器:空洞骑士玩家的终极免费解决方案

Lumafly模组管理器:空洞骑士玩家的终极免费解决方案 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 在《空洞骑士》模组社区中,Lumafly作…

作者头像 李华