2019/05/28 nginx企业应用配置01

在这里插入图片描述
在这里插入图片描述
**决定worker进程数量,默认是auto,对应cpu内核个数,过多的worker可能涉及到一个上下文切换的问题,当用户访问nginx服务,如果有一个worker提供服务了,下次再访问的时候,可能访问的是另外一个worker进程,这样就有可能带来一个worker的上下文切换,进程之前可以共享资源但是无法共享数据的,比如session信息,利用IO多路复用,就可以一个worker为多个用户提供服务
**
绑定cpu,可以把一个worker,绑定在一个具体的cpu内核上去,这样就可以提高缓存命中率,因为cpu里面也有缓存,如果你的worker是始终和一颗cpu结合在一起,这样cpu里的缓存就可以让worker不断地去重复使用
跑来跑去,原来你worker的缓存就有可能失效,不绑定的话,由此大大提高性能

在这里插入图片描述
改回2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在有4个cpu,怎么知道哪个进程工作哪个cpu上
-o选项可以选择,显示项,cpu是psr

在这里插入图片描述
总共有4个cpu,现在工作在1和2上面
触发一下用ab命令

在这里插入图片描述
0.5秒扫一次
在这里插入图片描述
现在仍然是12
在这里插入图片描述
用ab命令

在这里插入图片描述
改变了,现在看来worker进程并没有固定到某个cpu上的,如果想利用缓存的话,就尽可能需要把某一个worker进程,和cpu绑在一起,这样worker进程始终运行在一颗cpu上,就可以重复利用
在这里插入图片描述
在这里插入图片描述
affinity 亲近
代表123,上一位

在这里插入图片描述
worker进程绑定在,1,2,3,4颗cpu上
在这里插入图片描述
现在试着绑定下worker
在这里插入图片描述
第二颗,和第三颗
在这里插入图片描述
重新加载一下
在这里插入图片描述
现在就绑定了
在这里插入图片描述
在这里插入图片描述
现在处罚一下,是否还会改变吗
在这里插入图片描述
现在不变了,始终是一样的
这边的1是相当于2

在这里插入图片描述
7相当于第8个cpu
在这里插入图片描述
在这里插入图片描述
worker进程优先级
优先级也可以看,nice

在这里插入图片描述
默认优先级是0
在这里插入图片描述
也可以指定-20到+20(nice值,是-20到19)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
已经是-10了,说明确实是nice优先级的值
在这里插入图片描述
试试写个20
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实际上认为写20就认为是19
在这里插入图片描述
在这里插入图片描述
改成19结果就也是19
在这里插入图片描述
在这里插入图片描述
官方文档写的就是-20到20
在这里插入图片描述
写成190,还是19,语法认为是对的
在这里插入图片描述
worker进程能够打开的文件个数
在这里插入图片描述
通常来讲需要加以设置,默认没有设置

在这里插入图片描述
将来希望你的worker进程支持多少个用户并发
在这里插入图片描述
event实际上是驱动的意思在nginx用的是epoll模型,所以配置文件里有相关的,worker的链接数的限制
在这里插入图片描述
这个也是和打开的文件数相关的
这个1024数字有些偏小了,如果是两个worker就15000左右

在这里插入图片描述
这个数字也可以适当调大,这两个数字是相对应的
65536是个总值,用户打开的数量就需要设定固定的值,每个进程的连接数乘起来就是最大并发数量

在这里插入图片描述
在这里插入图片描述
默认用哪种方法,一般用epoll就可以了,没有必要去选一个select,因为nginx优势就在于epoll上面
在这里插入图片描述
accept_mutex 接收,必须在event语句块,如果这项是启用的,worker进程间接收新的链接
是轮流(by turn)的,第一个请求第一个worker处理,第二个请求给第二个worker来处理
所有的进程将被通知,如果设置成off,新的链接将会由某一个worker进程来提供服务
惊群,就是来一个请求就都唤醒,但是只是给一个worker来响应,这样就没有必要,影响服务器性能

在这里插入图片描述
用于调试定位的一些选项
在这里插入图片描述
守护进程就是前台执行还是后台执行
在这里插入图片描述
必须放在main语句块里
在这里插入图片描述作用是:是否变成守护进程,主要用于开发测试环境使用,默认是on

在这里插入图片描述
重新加载
在这里插入图片描述
再关闭
在这里插入图片描述
再次启动,以前一般是后台执行,现在变成了前台执行
在这里插入图片描述
这样就很方便 。ctrl+c结束,然后修改配置文件
在这里插入图片描述
然后再去跑一下,省的重新加载跑来跑去了,适合测试环境
在这里插入图片描述
在这里插入图片描述
是否以master、worker的模型运行nginx,有master进程,worker进程,off就是没有worker进程了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
只有一个nginx进程了
在这里插入图片描述在这里插入图片描述
这样表现为独立的进程,没有worker进程
在这里插入图片描述
定义错误日志,记录的就是nginx出现的错误信息
在这里插入图片描述
在这里插入图片描述
语法错误,应该是里面有一些相应的记录
在这里插入图片描述
错误日志不仅可以就在文件中,还可以记录在远程日志服务器上
在这里插入图片描述
可以把对应的日志发送到对应的服务器上去,还可以定义日志的级别,到底什么日志才记录在这里插入图片描述
关键看看http服务相关的配置
在这里插入图片描述
在这里插入图片描述
http核心模块,叫core
在这里插入图片描述
在这里插入图片描述
root类似documentroot指定网站的家目录路径
nginx搭建网站是以server语句块来搭建的

在这里插入图片描述
在这里插入图片描述
写server一定是放在http语句块里的
在这里插入图片描述
定义另外一个httpserver,可以放在server里也可以放在include里
default_server 因为nginx也支持虚拟主机,去访问的时候就是默认的
server_name 网站的名字
root 存放主页的路径

在这里插入图片描述
如果40多个主机放在一起,那这个文件就太啰唆了。可以放在.conf里*
在这里插入图片描述
也可以直接创建个文件夹,放在里面,每个网站建立一个conf文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190529120401150.png在这里插入图片描述
只少有三条,监听地址,名字,root,监听地址格式
在这里插入图片描述
servername必须放在server语句块里
root可以放的位置比较多
在这里插入图片描述
可以多个网站放在一起,但是这样比较乱,
在这里插入图片描述
为了管理起来更加清晰,建议一个网站单独放在一个配置文件里
在这里插入图片描述
在这里插入图片描述
前台测试执行方便,想要关闭就ctrl+c
在这里插入图片描述
客户端上加载名字解析
在这里插入图片描述
在这里插入图片描述
还没有放网页
在这里插入图片描述
b需要指定8080端口
在这里插入图片描述
在这里插入图片描述
通过ip访问访问 的是默认的网页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个是默认的
在这里插入图片描述
删除掉,才重启服务
在这里插入图片描述
在这里插入图片描述
按照字母再前,a就成默认的 了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在访问还是没有变化的
在这里插入图片描述
现在对c.com配置文件进行修改
在这里插入图片描述
现在就变成c是默认的了
在这里插入图片描述
在这里插入图片描述
http并发量过大,如何知道并发量过大,
之前设置了每个worker支持多少个并发

在这里插入图片描述
在这里插入图片描述
后援队列,就比如商场吃饭排队后面的小板凳
当用户发起请求也是先放到缓冲区里面,缓冲区可以设置成一个大小

在这里插入图片描述
刚才是根据主机头来设置虚拟主机
在这里插入图片描述
在这里插入图片描述
servername强大在支持通配符,甚至支持正则表达式
在这里插入图片描述
先把名字解析取消
在这里插入图片描述
在这里插入图片描述
为什么会返回c.com
在这里插入图片描述
因为前面的C。com是默认的
在这里插入图片描述
在这里插入图片描述
可以写成*
在这里插入图片描述
在这里插入图片描述
代表以a.com结尾的网站都由他处理
在这里插入图片描述
在这里插入图片描述
dns如果可以解析到,就接收处理你的请求到a.com
在这里插入图片描述
在这里插入图片描述
甚至支持正则表达式
\d表示某个数字(正则表达式中的一种写法)+(一个以上,至少一个).(转义)magedu.com$(结尾)
虚拟主机多,但是用户发请求到底谁区响应,就按照匹配的优先级
(正则表达式最好不要用,因为要进行计算,消耗服务器资源)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当用户发请求到网站,如果启用keepalive(用户发请求过来,不会立即就断开)可以继续地发多个请求过来
off代表好几个请求发过来,先等等,万一还有请求发过来,攒一起回应(延迟发送对服务器有好处,性能节约,但是用户感觉就慢了)
on不延迟发送,来一个就马上回应

在这里插入图片描述
sendfile在apache的时候讲过,好处就是,数据报文从磁盘读入到内核,以前是需要复制到应用程序的内存空间(然后再发送出去的时候,又要经过内核,因为通过内核才能结合网卡发送出去,所以需要传回到的内核空间,有一个socket和网络相关的缓存,这样无形中就白跑一圈)
senfile是直接把磁盘数据复制到内核空间,然后内核空间直接把数据复制到内核里关于buffer的socket文件的缓冲区,传出去

在这里插入图片描述
server_tokens 就是显示服务器的nginx版本
这个就很不安全
默认是持久链接的keep-alive

在这里插入图片描述
在这里插入图片描述
http,server都可以设置,如果几个网站都不想暴露,那就在http语句块设置就可以了
修改主配置文件里就可以了

在这里插入图片描述
在这里插入图片描述

可以自定义字符串只有商业版才支持在这里插入图片描述
京东就显示地是商业版的
在这里插入图片描述
我们改改源码也可以做到
程序员只管两三台机器之间测出功能,可以实现就可以了
在一些高并发的情况下的,可能代码就错了

在这里插入图片描述
root就是所谓的网站路径
咋sitea下面建立一个子文件夹叫sports

在这里插入图片描述
在这里插入图片描述
默认情况下,是和apache一样的,你建立一个网站的主目录建立一个子文件夹,将来访问这个子文件夹还可以得到你的页面,目前访问网站的时候,这个文件夹目前是主站点下的真的文件夹,那么不用真实文件夹,创建一个软链接,
在这里插入图片描述
现在就可以访问了
在这里插入图片描述
在这里插入图片描述
location可以来定义某个位置,针对某个位置来单独地做处理
可以放到server块和location(location嵌套)

在这里插入图片描述
主要功能就是针对某个具体的路径来定义响应的规则的
root之前是放在server语句块中的,实际上也可以放到location里

在这里插入图片描述
所以可以修改配置文件
在这里插入图片描述
代表针对跟/来进行一些设置
在这里插入图片描述
没有影响
在这里插入图片描述
修改成这样

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
这个news是url路径,还是访问这个文件夹下的news
在这里插入图片描述
但是可以进行分开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改成这样
在这里插入图片描述
现在设置的两个root各不相同
在这里插入图片描述
少了一个分号
在这里插入图片描述
在这里插入图片描述
现在访问news子文件夹的时候,访问的最终数据哪个文件夹里的
是app/sitea下的news

在这里插入图片描述
不访问news就还是原来的目录
在这里插入图片描述
**这样带来的好处就是针对特定的文件夹
(news目录(这个不是文件夹,是URL)和app/sitea目录的关系是
当用户取访问这个news的url的时候,就把请求转发到app/sitea下的news里面
就代表/news,跟/代表app/sitea
**在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以加一些符号
在这里插入图片描述
=就代表精确匹配
在这里插入图片描述
在这里插入图片描述
如果访问www.a.com是访问哪个文件夹呢
在这里插入图片描述
代表location的级别比root高一点
在这里插入图片描述
如果加了一个等号
在这里插入图片描述
z这样设置就无效了
在这里插入图片描述
现在把上面的root去掉
在这里插入图片描述
在这里插入图片描述
现在访问nginx默认页面取了
在这里插入图片描述
在这里插入图片描述
如果这样设置,好像精确匹配没有起作用,匹配到默认站点去了
在这里插入图片描述
看来是没有匹配成功在这里插入图片描述
修改成一个精确a.com
在这里插入图片描述
还是匹配不到
在这里插入图片描述
现在修改精确的写法,或者可能文档也写错了
在这里插入图片描述
语法没错,现在执行
在这里插入图片描述
在这里插入图片描述
现在就是精确匹配了
在这里插入图片描述
默认访问的就是/index.html。所以精确匹配到了站点
在这里插入图片描述
但是访问别的路径
先创建一个文件

在这里插入图片描述
在这里插入图片描述
启动起来访问一下test
在这里插入图片描述
找不到的原因是因为现在是精确匹配,访问test.html就找不到了
在这里插入图片描述
现在把root启用
在这里插入图片描述
在这里插入图片描述
找不到是因为在root下根本没有tesst文件,创建一个页面
在这里插入图片描述
在这里插入图片描述
只有精确匹配这个路径的时候才访问它,不匹配就访问跟
在这里插入图片描述
不写就认为是找index.html
在这里插入图片描述
还可以支持其他的比较
在这里插入图片描述
loction符号加在一起,如果都冲突的话,会有个先后顺序
=,精确匹配
^~,对url最左边做匹配,不区分大小写
~/,对url做正则表达式,区分大小写
~*,对url做正则表达式,不区分大小写
没有符号

在这里插入图片描述
当用户去访问,某个地址,如何去匹配
如果是/的请求,如www.a.com就是匹配A,B(也是包含的,代表访问主站点的时候,认为哪些有效的,但是AB都匹配)
根据优先级是A精确匹配优先级高,直接生效

在这里插入图片描述
如果访问的是document.html,就C生效,匹配的更多谁生效
images/1.gif,就需要D生效(B.D.E都匹配,按照符号匹配优先级)D最高就生效

在这里插入图片描述
在这里插入图片描述
document/1.jpg,B,C都匹配,E也匹配,之前的都是不带符号,不带符号的不如带符号的优先级高所以E生效
在这里插入图片描述
在这里插入图片描述
一般没有过于复杂的需求最好不要用正则表达式,会比较浪费服务器资源
在这里插入图片描述
在这里插入图片描述
具体看哪个生效
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值