03.nginx

安装nginx,搭建web服务器

环境

epoll,linux 内核版本为2.6或者以上;
gcc编译器,g++编译器
pcre库:函数库;支持解析正则表达式;
zlib库:压缩解压缩功能
openssl库:ssl功能相关库,用于网站加密通讯

nginx的几种版本

mainline版本:版本号中间数字一般为奇数。更新快,一个月内就会发布一个新版本,最新功能,bug修复等,稳定性差一点;
stable版本:稳定版,版本号中间数字一般为偶数。经过了长时间的测试,比较稳定,商业化环境中用这种版本;这种版本发布周期比较长,几个月;
Legacy版本:遗产,遗留版本,以往的老版本;

安装方式:

现在有这种二进制版本:

  • 通过命令行直接安装;
  • 要通过编译 nginx源码手段可以将第三方模块编译进去

Nginx目录

auto / :编译相关的脚本,可执行文件configure将用到这些脚本
cc / : 检查编译器的脚本
lib / : 检查依赖库的脚本
os / : 检查操作系统类型的脚本
type / : 检查平台类型的脚本
CHANGES : 修复的bug,新增加的功能说明
CHANGES.ru : 俄语版CHANGES
conf / : 默认的配置文件
configure : 编译nginx之前必须先执行本脚本以生成一些必要的中间文件
contrib / : 脚本和工具,典型的是vim高亮工具
vim / : vim高亮工具
html / : 欢迎界面和错误界面相关的html文件
man / : nginx帮助文件目录
src / : nginx源码目录
core : 核心代码
event : event(事件)模块相关代码
http : http(web服务)模块相关代码
mail : 邮件模块相关代码
os : 操作系统相关代码
stream : 流处理相关代码
objs/:执行了configure生成的中间文件目录
ngx_modules.c:内容决定了我们一会编译nginx的时候有哪些模块会被编译到nginx里边来。
Makefile:执行了configure脚本产生的编译规则文件,执行make命令时用到	

nginx的编译和安装

第一步:用configure来进行编译之前的配置工作
./configure
--prefix:指定最终安装到的目录:默认值 /usr/local/nginx
--sbin-path:用来指定可执行文件目录:默认的是   sbin/ nginx
--conf-path:用来指定配置文件目录:默认的是  conf/nginx.conf 
用make来编译,生成了可执行文件   make
用make命令开始安装   sudo make install

nginx的整体结构

  • master进程和worker进程

在这里插入图片描述

第一列:UID,进程所属的用户id
第二列:进程ID(PID),用来唯一的标识一个进程
第三列:父进程ID(PPID)。 通过fork()函数,worker进程是被master进程通过fork()创建出来的。
worker进程是master进程的子进程,master是父进程。

nginx进程模型

在这里插入图片描述

1个master进程,1到多个worker进程 这种工作机制来对外服务的;
这种工作机制保证了 nginx能够稳定、灵活的运行;
master进程责任:监控进程,不处理具体业务,专门用来管理和监控worker进程;
master,角色是监工,比如清闲;
worker进程:用来干主要的活的,(和用户交互);
master进程和worker进程之间要通讯,可以用 信号 ,也可以用 共享内存 ;
稳定性,灵活性,体现之一:
worker进程 一旦挂掉,那么master进程会立即fork()一个新的worker进程投入工作中去; 

多进程,多线程:

多线程模型的弊端:共享内存,如果某个线程报错一定会影响到其他线程,最终会导致整个服务器程序崩溃;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值