Nginx安装与架构说明

本文详细介绍了Nginx的安装过程,包括环境准备、安装步骤和基础控制命令。重点解析了Nginx的架构,说明了主进程与工作进程的角色,以及模块化、事件驱动的设计如何实现高并发和高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 安装环境准备

1.linux 内核2.6及以上版本:
只有2.6之后才支持epool ,在此之前使用select或pool多路复用的IO模型,无法解决高并发压力的问题。通过命令uname -a 即可查看。

	#查看 linux 内核
	uname -a

在这里插入图片描述
2.GCC编译器
GCC(GNU Compiler Collection)可用来编译C语言程序。Nginx不会直接提供二进制可执行程序,只能下载源码进行编译。
3.PCRE库
PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)是由Philip Hazel开发的函数库,目前为很多软件所使用,该库支持正则表达式。
4.zlib库
zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量。
5.OpenSSL开发库
如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。
上面几个库都是Nginx 基础功能所必需的,为简单起见我们可以通过yum 命令统一安装。

    #yum 安装nginx 环境
    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

二 安装Nginx

1.源码获取,下载Nginx
我是新建放在/package下

	wget http://nginx.org/download/nginx-1.14.0.tar.gz

解压

	tar -zxvf nginx-1.14.0.tar.gz

解压后就能看到同目录下出现nginx文件夹
在这里插入图片描述
但是这只是一堆源代码,并不是可执行文件
基于参数构建
cd进到nginx目录进行构建,进行环境的初始化,将相关的源代码编译到obj目录下,核心模块的源代码都在这里边

	./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-debug

但构建完成后也只是一堆源代码,并不是可执行文件,再执行make && make install命令就生成了可执行文件了

	make && make install

然后就能看到/usr/local/文件夹下看见已经构建好的Nginx
在这里插入图片描述
进到nginx进行启动

	./sbin/nginx

启动后在浏览器输入虚拟机ip就能访问到nginx主页
在这里插入图片描述

三 基础控制命令

#默认方式启动:
./sbin/nginx 
#指定配置文件启动 
./sbing/nginx -c /tmp/nginx.conf 
#指定nginx程序目录启动
./sbin/nginx -p /usr/local/nginx/

#快速停止
./sbin/nginx -s stop
#优雅停止
./sbin/nginx -s quit

#热装载配置文件 
./sbin/nginx -s reload
#重新打开日志文件
./sbin/nginx -s reopen

四 Nginx 架构说明

Nginx 架构图:
在这里插入图片描述
架构说明:
1)nginx启动时,会生成两种类型的进程,一个是主进程(Master),一个(windows版本的目前只有一个)和多个工作进程(Worker)。主进程并不处理网络请求,主要负责调度工作进程,也就是图示的三项:加载配置、启动工作进程及非停升级。所以,nginx启动以后,查看操作系统的进程列表,我们就能看到至少有两个nginx进程。
2)服务器实际处理网络请求及响应的是工作进程(worker),在类unix系统上,nginx可以配置多个worker,而每个worker进程都可以同时处理数以千计的网络请求。
3)模块化设计。nginx的worker,包括核心和功能性模块,核心模块负责维持一个运行循环(run-loop),执行网络请求处理的不同阶段的模块功能,如网络读写、存储读写、内容传输、外出过滤,以及将请求发往上游服务器等。而其代码的模块化设计,也使得我们可以根据需要对功能模块进行适当的选择和修改,编译成具有特定功能的服务器。
4)事件驱动、异步及非阻塞,可以说是nginx得以获得高并发、高性能的关键因素,同时也得益于对Linux、Solaris及类BSD等操作系统内核中事件通知及I/O性能增强功能的采用,如kqueue、epoll及event ports。
Nginx 核心模块:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值