nginx介绍、nginx编译示例、nginx配置文件介绍

Nginx源码编译安装 Nginx源码编译安装的基本配置 阅读详情

nginx介绍

nginx: engine X,是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0

nginx有商业版和社区版,2019年3月11日F5 Networks 6.7亿美元的价格收购

nginx 是免费,开源,高性能的HTTP和反向代理服务器,邮件代理服务器,通用TCP/UDP代理服务器

官网:http://nginx.org

nginx的其它的二次发行版:
Tengine:由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。从2011年12月开始,Tengine成为一个开源项目
官网 http://tengine.taobao.org/

OpenResty:基于 Nginx 与 Lua 语言的高性能 Web 平台, 章亦春
官网:http://openresty.org/cn/

基本功能:
静态资源的web服务器
http协议反向代理服务器
pop3/imap4协议反向代理服务器
FastCGI(LNMP),uWSGI(python)等协议
模块化(非DSO),如zip,SSL模块

特性:
模块化设计,较好的扩展性
高可靠性
支持热部署:不停机更新配置文件,升级版本,更换日志文件
低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存
event-driven,aio,mmap,sendfile

web服务相关的功能:
虚拟主机(server)
支持 keep-alive 和管道连接( 共享TCP连接发起并发的HTTP请求)
访问日志(支持基于日志缓冲提高其性能)
url rewrite
路径别名
基于IP及用户的访问控制
支持速率限制及并发数限制
重新配置和在线升级而无须中断客户的工作进程
Memcached 的 GET 接口

nginx的程序架构

master/worker结构

一个master进程:
负载加载和分析配置文件、管理worker进程、平滑升级

一个或多个worker进程:
负责处理并响应用户请求

缓存相关的进程:
cache loader:载入缓存对象
cache manager:管理缓存对象

nginx高度模块化,但其模块早期不支持DSO机制;1.9.11版本支持动态装载和卸载

模块分类
核心模块:core module

标准模块:
HTTP 模块: ngx_http_*
  HTTP Core modules 默认功能
  HTTP Optional modules 需编译时指定
Mail 模块 ngx_mail_*
Stream 模块 ngx_stream_*

第三方模块

各类模块的作用
核心模块是 Nginx 服务器正常运行 必不可少 的模块,提供 错误日志记录 、配置文件解析 、 事件驱动机制 、 进程管理 等核心功能

标准HTTP模块提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

可选HTTP模块主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如: Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

邮件服务模块主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、IMAP 协议和 SMTP协议的支持

第三方模块是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如:Json 支持、 Lua 支持等

nginx的功用

1.静态的web资源服务器,例如html,图片,js,css,txt等静态资源
2.结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求
3.http/https协议的反向代理
4.imap4/pop3协议的反向代理
5.tcp/udp协议的请求转发(反向代理)

nginx编译示例

安装开发相关包组
yum install gcc pcre-devel openssl-devel zlib-devel -y

创建用户
useradd -r -s /sbin/nologin nginx

开始编译步骤
./configure --prefix=/app/nginx \
--conf-path=/app/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_stub_status_module \
--with-threads \
--with-file-aio

make -j 2 && make install

nginx:默认为启动nginx
-h 查看帮助选项
-V 查看版本和配置选项
-t 测试nginx语法错误
-c filename 指定配置文件(default: /etc/nginx/nginx.conf)
-g directives 在命令行中指明全局指令
-s signal 发送信号给master进程,signal:stop, quit, reopen, reload
示例:
nginx -s stop 停止nginx
nginx -s reload 加载配置文件

nginx配置文件介绍

配置文件的组成部分:
主配置文件:nginx.conf
子配置文件 include conf.d/*.conf
fastcgi, uwsgi,scgi等协议相关的配置文件
mime.types:支持的mime类型

主配置文件的配置指令:
directive value [value2 …];
注意:指令必须以分号结尾,支持使用配置变量
内建变量:
由Nginx模块引入,可直接引用

自定义变量:由用户使用set命令定义
set variable_name value;

引用变量:
$variable_name

主配置文件结构:四部分
main block:主配置段,即全局配置段,对http,mail都有效

事件驱动相关的配置
event {
…
}

http/https 协议相关配置段
http {
…
}

mail 协议相关配置段
mail {
…
}

stream 服务器相关配置段
stream {
…
}

http {
	各server的公共配置
	...
	... 
	server { 每个server用于定义一个虚拟主机
		...
	}
	server {
		server_name 虚拟主机名
		root 主目录
		alias 路径别名
		location [OPERATOR] URL { 指定URL的特性
			if CONDITION {
				...
			}
		}
	}
}

Main 全局配置段常见的配置指令分类

总共有4部分:
正常运行必备的配置
优化性能相关的配置
用于调试及定位问题相关的配置
事件驱动相关的配置

正常运行必备的配置

user
指定worker进程的运行身份,如组不指定,默认和用户名同名
Syntax: user user [group];
Default: user nobody nobody;
Context: main

pid /PATH/TO/PID_FILE;
指定存储nginx主进程PID的文件路径

include file | mask;
指明包含进来的其它配置文件片断

load_module file ;
模块加载配置文件: /usr/share/nginx/modules/*.conf
指明要装载的动态模块路径: /usr/lib64/nginx/modules

性能优化相关的配置

worker_processes number | auto;
worker进程的数量;通常应该为当前主机的cpu的物理核心数

worker_cpu_affinity cpumask …;
worker_cpu_affinity auto [cpumask] 提高缓存命中率
CPU MASK:
00000001:0号CPU
00000010:1号CPU
10000000:7号CPU
示例:
worker_cpu_affinity 0001 0010 0100 1000;
worker_cpu_affinity 0101 1010;

worker_priority number;
指定worker进程的nice值,设定worker进程优先级:[-20,20]

worker_rlimit_nofile number;
所有worker进程能打开的文件数量上限,最好与ulimit -n 的值保持一致,如65535

事件驱动相关的配置

events {
…
}

worker_connections #;
每个worker进程所能够打开的最大并发连接数,如10240总最大并发数:worker_processes * worker_connections

use method;
指明并发连接请求的处理方法,默认自动选择最优方法
示例:use epoll;

accept_mutex on | off;
处理新的连接请求的方法;on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认值为off,可优化为on

multi_accept on|off;
此指令默认为off,即默认为一个worker进程只能一次接受一个新的网络连接, on表示每个woker进程可以同时接受所有新的网络连接

调试和定位问题

1、daemon on|off;
是否以守护进程方式运行,默认是on,即守护进程方式,off 用于调试或docker环境

2、master_process on|off;
是否以master/worker模型运行nginx,默认为on,当指定off 将不启动worker

3、error_log file [level] ;
错误日志文件及其级别;出于调试需要,可设定为debug;但debug仅在编译时使用了“–with-debug”选项时才有效
/path/logfile: 记录到文件中
stderr: 发送到标准错误
syslog:server-address[,parameter=values] 发送到syslog
memory:size 内存
level:debug|info|notice|warn|error|crit|alter|emerg 日志级别

nginx编译安装 一.nginx安装1.关闭防火墙2.上传安装包指opt目录下3.安装依赖包4.创建运行用户、组 5.编译安装6.检查、启动、重启、停止nginx服务7.添加Nginx系统服务​ 二.配置文件介绍1.全局配置 2.I/O事件配置​ 3.HTTP配置 3.安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c++ makecd /opt tar zxvf nginx-1.12.0.tar.gz -C /opt/ cd nginx-1.12 阅读详情

相关推荐

ModSecurity 3.x + Nginx 编译安装

在CentOS7上,制作nginx_modsecurity3 安装包,附件有制作完成的 rpm 安装包,系统环境匹配的情况下可以直接使用。

xufuangchao的博客 2621

源码编译三部曲(以nginx示例)

在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。==计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成==。即源码要运行,必须先转成二进制的机器码。这是编译器的任务。

Tuki来了 2376

抖音视频数据抓取

最近经常有人问我抓取抖音视频的数据,问我一些很小白的问题,算法给他也不会用。 还是先抓包,获取需要的接口和参数,相关的算法在其它文章里面有描述。 搜索个视频看看 查看抓的包信息: 可以看到,这里是post请求...

2501_91048859的博客 3098

Nginx配置文件编写实例

编写nginx服务配置文件 nginx配置文件三个语法格式说明: 1. 大括号要成对出现 2. 每一行指令后面要用分号结尾 3. 每一个指令要放置在指定的区块中 虚拟主机配置文件编写方法: 1. 基于域名的虚拟主机配置方法(最常用) 2. 基于端口的虚拟主机配置方法 说明:当你访问的网站域名在虚拟主机配置中不存在时,默认会将第一个虚拟主机的配置页面响应给用户 3....

weixin_34062329的博客 503

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 905

SPSS因子分析实战:从数据清洗到结果解读的完整流程

本文提供了一份详尽的SPSS因子分析实战指南,涵盖从数据清洗、适用性检验(KMO与巴特利特检验)、公因子提取、因子旋转到结果解读与报告撰写的完整流程。通过具体案例,手把手教你如何利用SPSS进行探索性因子分析,实现数据降维并提炼核心公共因子,适用于市场研究、心理学等多变量数据分析场景。

weixin_29055699的博客 330

nginx编译参数和示例

编译参数 configure决定系统的特性,以及nginx可以用来处理连接的某些特性和方法,最后它将创建Makefile。 configure支持以下选项: –prefix=<path>- 安装路径,如果没有指定,默认为/usr/local/nginx。 –sbin-path=<path>- nginx可执行命令的文件,如果没有指...

weixin_34262482的博客 166

别只会‘pip install’了!当Python报错找不到‘pkg_resources’时,你的setuptools可能出大问题

本文深入解析Python开发中常见的`ModuleNotFoundError: No module named 'pkg_resources'`错误,揭示其背后的setuptools依赖问题。通过系统化的诊断与修复指南,帮助开发者理解Python包管理机制,并提供从基础到高级的解决方案,确保pip和setuptools的正常运行。

weixin_42523711的博客 436

nginx从编译安装到配置文件说明中文详细介绍

本文详细介绍了Nginx从编译安装到配置文件说明,每一步都给出了详细介绍,可以作为安装Nginx的指导手册了 好了,费话不多说直接进入主题 安装nginx 1.1 选择稳定版Nginx 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64。首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-d...

赵北的技术博客 824

DINOv3 网络结构解析:从 ViT 到 ConvNeXt 的双路线设计

本文深入解析了DINOv3网络结构的双路线设计,包括ViT和ConvNeXt两种主干架构。ViT路线通过轴向旋转位置编码解决了传统ViT对固定分辨率的依赖,而ConvNeXt路线则优化了卷积设计,提升了实时处理能力。文章还探讨了Gram Anchoring、混合自监督目标等关键技术,展示了DINOv3在多任务和多模态应用中的强大潜力。

weixin_29214199的博客 565

【Nordic实战】nRF54L15引脚规划:电源域、专用引脚与低功耗设计避坑指南

本文深入解析Nordic nRF54L15芯片的引脚规划策略,重点阐述其基于电源域(MCU域、PERI域、LP域)的GPIO分配原则。文章提供了从思维转变到实战避坑的完整指南,强调遵循专用引脚与域对应关系是实现超低功耗设计的关键,并分享了系统化的引脚规划流程与工具使用建议。

weixin_29192141的博客 321

Nginx配置文件及编译参数解释

安装好Nginx后就可以查看nginx中的各种信息了。 一、Nginx配置文件 rpm -ql nginx //查看所有文件 /etc/logrotate.d/nginx 日志轮转 /etc/nginx/nginx.conf 总配置文件 /etc/nginx/conf.d 子配置文件夹 /etc/nginx/conf.d/default.conf 默认的网站配置文件 /etc/nginx...

yiweii的博客 1444

Yandex复杂还原验证码识别

本文分析了Yandex滑动验证码的识别方法,指出其通过JS判断正确滑动位置而非用户交互还原图像。核心思路是通过像素差异分析,将验证码图像重组后(分为3×3或4×4),计算相邻图像间的像素差异,最小值即为正确位置。与前期某象验证码识别方法类似,需结合图像增强技术统一像素直方图。文章强调该方法仅供学习参考,严禁用于违法行为。完整识别流程包括图像重组、像素差异计算等步骤,最终可准确定位正确拼图位置。

码王吴彦祖的博客 285

Nginx配置文件 所在路径 到底在哪?

(大坑,误)不同安装方式,nginx配置文件路径也不一样。

Ximerr的博客 4万+

YOLO26涨点改进 | 小目标损失函数独家改进篇 | TGRS 2025 | 引入AdaFocalLoss损失函数,改进小目标检测,自适应聚焦小目标与样本分布不平衡,提升检测精度与训练稳定性

本文提出将AdaFocalLoss损失函数应用于YOLO26模型优化,有效提升小目标检测性能。AdaFocalLoss通过目标尺寸感知机制和IoU引导的动态调节,自动调整训练权重和聚焦程度,解决了样本不平衡问题。相比传统损失函数,它无需手动调参,能增强训练稳定性,在多尺度、复杂场景下表现优异。文章详细介绍了AdaFocalLoss的原理、优势及实现方法,并提供了代码集成指南。实验表明该方法能显著提升检测精度和鲁棒性,特别适用于小目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 337

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Nginx配置文件与编译参数

Nginx配置文件与编译参数配置文件编译参数基本配置模块类 配置文件 rpm -ql nginx ##日志轮转 /etc/logrotate.d/nginx ##总配置文件 /etc/nginx/nginx.conf ##子配置文件夹 /etc/nginx/conf.d ##默认的网站配置文件 /etc/nginx/conf.d/default.conf ##动态网站模块文件...

无情的笔记软件 394

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux nginx 基础介绍与安装版本选择

Linux nginx 基础介绍与安装版本选择Nginx 版本类型Nginx yum 安装了解 Nginx 配置文件Nginx 编译参数详解(源码编译安装时使用)Nginx 基本配置创建Nginx 虚拟主机 Nginx 版本类型 1.进入nginx官网下载页面:http://nginx.org/en/download.html 提供了 3 种类型的 nginx 版本可下载分别是: Mainline version: 主线版本,即开发版本 Stable version: 最新稳定版,生产环境上建议使

专注于php高级知识分享 5524

nginx 编译安装

nginx 编译安装与配置使用 1、安装编译环境 yum -y install gcc gcc-c++ 2、安装pcre软件包(使nginx支持http rewrite模块) yum -y install pcre pcre-devel gd-devel 3、安装openssl-devel(使nginx支持ssl) yum -y install openssl openssl-devel 4...

孤独礼赞的博客 615

nginx在linux上的源码编译安装

说明:本文章结合了他人的教程,以及相当多的细节,贯彻了知其然知其所以然的学习精神。使用黄绿蓝三种颜色对同样的名词进行标注体现偏离主体的程度,如:pcre/pcre-develhang黄色表示离nginx安装很近而Perl蓝色表示偏离程度最远,以便增加可读性。

m0_63131933的博客 1253

Nginx源码编译安装超详细

前提说明:在工作中,建议大家选择nginx源码编译安装,yum安装适合用于个人学习使用。

weixin_52963003的博客 2468

Nginx目录结构与配置文件详解

Nginx安装 具体安装nginx请移步:nginx部署 安装依赖 安装pcre依赖软件 [root@ubuntu ~]# yum install -y pcre pcre-devel //外网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh pcre //内网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh pcre-devel //内网情况...

KH_FC的博客 5932

centos7安装nginx与nginx配置文件

1、安装环境或依赖,在根目录下操作即可 yum install gcc-c++ //nginx源码编译需要 yum install -y pcre pcre-devel //nginx 的 http 模块使用 pcre 来解析正则表达式 yum install -y zlib zlib-devel //nginx 使用zlib对http包的内容进行gzip yum install -y op...

lifachang的博客 554

nginx配置文件目录

背景 想把服务器上nginx配置文件下载到本地使用vscode打开看的时候,发现进程参数中未指定配置文件目录。 于是查看nginx官网,nginx默认配置文件目录为 /usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx. 然后去上述目录都看一下还是没找到。 解决方案 nginx -t可以查看配置文件实际使用的目录 nginx: the configuration file /xxxx/nginx.conf syntax is ok ngin

shuxiaohua的博客 1万+

Nginx编译安装与配置使用

编译安装nginx过程

qq_45429357的博客 464

nginx的编译参数与配置文件解析

此安装为编译安装 一.nginx编译参数 # 查看 nginx 安装的模块 [root@localhost ~]#/usr/local/nginx/sbin/nginx -V --prefix=/usr/local/nginx //指向安装目录 --conf-path=/etc/nginx/nginx.conf //指定配置文件 --http-log-path=/var/log/nginx/access.log //

weixin_49844466的博客 224

nginx源码编译后配置文件不起作用

问题描述: 根据cmakelists来编译nginx,方便在clion中打开 cmake_minimum_required(VERSION 3.6) include_directories( . src/core src/event src/event/modules src/os/unix objs src/http src/http/modules) set(SOURCE_FILES objs/ngx_modules.c src/core/ngin

weixin_39849839的博客 353
上一篇: KeepAlived介绍、配置示例、KeepAlived配置IPVS、调用脚本进行监控
下一篇: nginx的HTTP配置、版本号设置、定义错误页面、文件检查、favicon.ico、客户端连接、请求报文配置、客户端限制、文件操作优化、文件缓存、文件下载服务、gzip压缩、IP访问控制、输出信息
zerocdn
博客等级 码龄8年 1053粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值