2019/05/28 nginx基本配置

在这里插入图片描述
官方网站
nginx的组成部分以及特性

在这里插入图片描述
早期的nginx的模块是静态编译,后面的是支持动态编译
不需要停机就可以升级,如果已经有人链接就用旧的服务进程提高服务,当旧的用户访问结束,逐步替换掉旧进程
event-driven 事件驱动,aio异步IO,mmap内存映射,sendfile(讲apache的时候讲过)
nginx是静态服务器,要想当php程序的服务器,做不了,要想运行php,就需要安装对应的软件,fastcgi,而且nginx不支持模块方式,只支持fastcgi,独立进程的方式运行

在这里插入图片描述
lemp(e取的是engin x )或者lnmp
在这里插入图片描述
在这里插入图片描述
nginx充当php客户端,php充当mysql客户端
在这里插入图片描述
在这里插入图片描述
可以充当http反向代理服务器,功能强大,但是性能不如LVS
在这里插入图片描述、也可以作为邮件的反向代理
在这里插入图片描述
后台的应用程序一般都是用python来承担的
比如django服务器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
静态加载就是编译完什么样,就是什么样,不能做到动态加载模块
在这里插入图片描述
以前用bbs,现在论坛流行叫forum
就可以用到地址重写(apache 就是有这个alias

在这里插入图片描述
apahce默认路径就是定义跟的,DOCUMENTROOT,网站的根目录
在这里插入图片描述
加上别名就可以改变这个默认行为
在这里插入图片描述
在这里插入图片描述
可以控制什么用户才能访问
GET是链接memcached,链接缓存用的

在这里插入图片描述
也有master进程和worker进程(类似apache有MPM,三种工作模式prefork,event,worker,但是apache
prefork,一个master开若干个子进程,每个子进程去响应请求,
worke和eventr是三级结构,一个master开多个worker,worker里开多个线程,每个线程响应用户请求)
nginx是开若干个worker,但是worker不多,每个worker可以并发支持很多人,1个worker里面没有线程,用的是IO多路复用,可以并发支持多个用户请求,而且不是线程,看不到,可以并发响应上万的请求,在worker里也支持很多模块,每个模块都有特定的功能,
master负责管理这些worker进程,比如开启或者销毁一个worker,此外加载配置文件,平滑升级,都是master来管理的,
除了代理功能,其实还有缓存功能,用户发送请求给nginx,niginx不可能告诉用户自己拿,自己缓存一份,下次用户直接访问,省的去后端服务器上拿数据 了,缓存可以放在内存也可以放在磁盘里,存放在磁盘表现为hash的值
在这里插入图片描述
这个就是哈希值,将来缓存了,磁盘上就会出现这样的文件
在这里插入图片描述
在这里插入图片描述
时间驱动,异步,非阻塞
面试题有可能让你说说apache和nginx底层的区别

在这里插入图片描述
没有线程都是进程,但是一个进程可以响应多个用户的请求
nginx是模块化的

在这里插入图片描述
标准模块主要描述三个主要功能,
1.http相关的功能
2.邮件功能
3.stream功能,可以做tcp的代理,后端可以跑数据库,调度数据库(一般调度的服务器,但是也可以调度数据库,用的不多 ,一般都是http服务器)

在这里插入图片描述
官方文档描述的最详细在这里插入图片描述
核心模块,标准模块在这里插入图片描述
就一个谷歌的第三方模块
在这里插入图片描述
标准模块又分为http,mail.stream
在这里插入图片描述
一个模块就这么多命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
nginx可以作为静态服务器
动态程序如PHPINFO,就要用到fastcgi
lvs就是请求转发,反向代理
lvs和反向代理的区别,从拓补结构来讲都是一样的
lvs是通过它帮你把数据包转发过去,对于apache看到的用户请求还是来自于客户端
nginx是帮你把请求转发,把事情左了,所以服务器看到的是nginx的请求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mainline主线版,stable稳定版本,version测试版
nginx是放在epel源里的

在这里插入图片描述
epel1.12,官方最新是1.15测试版
最新版也有yum源

在这里插入图片描述
yum源路径
在这里插入图片描述
不替换变量也没事
在这里插入图片描述在这里插入图片描述
创建一个repo
在这里插入图片描述
再看nginx
在这里插入图片描述
太新了,没有进行充分测试
在这里插入图片描述
**有官方的也有阿里云的
**
在这里插入图片描述
如果不清除,yum clean all 可能把1.14装上
在这里插入图片描述
文件列表
在这里插入图片描述
主配置文件在这里插入图片描述
服务名和nginx主程序
在这里插入图片描述
语法检查的,vim的插件
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先研究下nginx主进程
在这里插入图片描述
用的比较多的t,检查测试语法,配置语法对不对
-T也会测试,不过会把内容打印出来

在这里插入图片描述
把非错误信息压缩掉,不显示了
在这里插入图片描述
-s发送信号,停服务,退出服务,重新打开服务,加载配置文件

在这里插入图片描述
在这里插入图片描述
指定配置文件路径,默认就是这个路径
在这里插入图片描述
-g可以来指定一些配置文件
在这里插入图片描述
-V大v是显示版本信息以及配置选项
在这里插入图片描述
现在直接用nginx启动程序
在这里插入图片描述
在这里插入图片描述
已经启动,说明网站可以访问了
在这里插入图片描述
停服务
在这里插入图片描述
所以一般在生成环境测试的时候,都用nginx测试
如果启动使用nginx
那么停止服务就不能用systemctl stop,是停止不了的

在这里插入图片描述在这里插入图片描述
用什么工具起,就用什么命令停
用systemctl起倒是可以用nginx停止

在这里插入图片描述
在这里插入图片描述
**为了测试方便,经常启动关闭服务,可能就需要用前台方式来运行。一旦启动,就不会退出,ctrl+c就关闭了
**
配置文件备份下,待会需要进行大量的修改
在这里插入图片描述
下面都是编译选项
在这里插入图片描述
下面这个就是可以在一个nginx上搭建多个https网站
apache支持多个虚拟主机,但是不支持多个https的虚拟主机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为在主配置文件里包含自配置文件才有效
在这里插入图片描述
1.web服务器
2.做反向代理
3.做邮件服务器
4.stream tcp/udp
这些功能在实现的时候是放在不同的语句块里的
有些配置不能随便放
这里面的代码只能和http相关

在这里插入图片描述
在这里插入图片描述
一种是内置变量,模块里就有
自定义变量
位置变量,在官方文档里有

在这里插入图片描述
指令索引和变量索引
在这里插入图片描述
在这里插入图片描述
在nginx的里面引用变量跟shell一样,都是用$符号的
在这里插入图片描述
remote_addr要看具体在哪个模块,比如http还是stream
在这里插入图片描述
客户端地址
在这里插入图片描述
在这里插入图片描述
主配置文件大概的格式,main block 主块,对于nginx的主要功能都有效,http服务功能,
邮件,tcp的转发代理
三大块,有一个针对所有功能都有效的全局配置

在这里插入图片描述
有一个默认配置文件
在这里插入图片描述
全局性设置
在这里插入图片描述
http相关的
在这里插入图片描述
定义了服务器和加密的实现,都有范例
在这里插入图片描述

在这里插入图片描述
范例文件可以参考它来设置
在这里插入图片描述
主要看和http相关的功能
分成两大块,所有http相关的公共设置,每个虚拟主机的server块,各自的虚拟主机有各自的语句块
实际上nginx配置文件格式语法上更简单

在这里插入图片描述
全局配置也就是http前面的一大块,影响所有服务
http服务,邮件服务
tcpudp转发代理服务,

在这里插入图片描述
在这里插入图片描述
是用nginx身份来运行的
在这里插入图片描述
master 带若干worker
在这里插入图片描述
一个master带两个worker,这两个worker以nginx身份运行
在这里插入图片描述
没有线程,就是两个进程
在这里插入图片描述
**这两个worker是以nginx身份来运行的,也可以进行修改
**在这里插入图片描述
修改了配置文件,进行生效
在这里插入图片描述
语法检查再加载比较稳妥一些
在这里插入图片描述
在这里插入图片描述
默认是nginx账号,但是系统是什么时候生成这个账号
在这里插入图片描述
不在这个包里,看看具体在哪个包里
在这里插入图片描述
在这里插入图片描述
可以一个个查,时间确实是装包的时候修改的
如果将来要编译安装,账号必须手动创建
查看user指令,因为这个代码不是想写哪里就写哪里的

在这里插入图片描述
只能放在主要命令语句块里
在这里插入图片描述
放在http,就会报错
在这里插入图片描述
在这里插入图片描述
pid进程编号
在这里插入图片描述
在这里插入图片描述
这个就是nginx的进程编号
在这里插入图片描述
在这里插入图片描述
如果服务停止这个pid文件就没有了
在这里插入图片描述
启动后这个文件就生成了
在这里插入图片描述
删除这个pid文件会如何
在这里插入图片描述
停止服务的时候就有问题了,因为把文件删除了,就不知kill哪个进程
在这里插入图片描述
下次启动就自动生成了
在这里插入图片描述
在这里插入图片描述
可以包含配置文件
在这里插入图片描述
在这里插入图片描述
这里面放的都是加载模块的一些信息
在这里插入图片描述
在这里插入图片描述
这里面就是模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据当前情况自动判断进程数量,之所以有两个worker,是因为有两个cpu内核
在这里插入图片描述
在这里插入图片描述
修改成4个
在这里插入图片描述
在这里插入图片描述
但是现在nginx没有自动地变成4个在这里插入图片描述

在这里插入图片描述
重启服务,就出来了
在这里插入图片描述
是不是多了,处理能力就强了,没有这种说法,并不是进程数量多,就性能好,甚至有时候进程数量过多导致性能下降,每开个进程就要消耗cpu

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值