Nginx学习(二)

------------恢复内容开始------------

Nginx配置文件
主配置文件结构:四部分
main block:主配置段,既全局配置段,对Http,mail都有效
event{

}事件驱动配置

http {
...
...各server的公共配置
server{
每个server用于定义一个虚拟主机

}
server{

...
server_name 虚拟主机名
root 主目录
alias 路径别名
location[operator] URL {

...
if condition }


}

} http/https协议相关配置

mail {



} mail协议相关配置

stream {



} stream服务器相关配置
##################################################################################################################################################
nginx全局配置介绍
user nginx;
以nginx身份来运行程序,并且user指令只能放到全局位置。

worker_processes auto;

性能相关设置,worker进程数量设置 ,worker进程数和物理cpu核数一样 使用lscpu可以查看(胖小8个worker进程因为cpu是8核的)
注意#worker进程不需要太多,第一次请求session缓存到第一个worker线程,第二次请求可能跑下一个worker上去,使用epoll模式 一个worker进程可以处理多个请求。

worker_cpu_affinity auto [cpumask] ; 提高缓存命中率

CPU MASK : 00000001 : 0号CPU 第一颗CPU
00000010 : 2号CPU 第二颗CPU 看数字1在整个数字的位置 从右边开始数
10000000 : 8号CPU 第八颗CPU

#注意:CPU也有缓存,让worker和CPU绑定 这样CPU缓存可以一直对这个worker进程使用,提高缓存命中率。

worker_cpu_affinity(亲缘性) 001 0010 0100 1000;

worker_priority number

指定worker进程nice的值,设定worker进程的优先级: [-20,20]
#注意 最大就是19,设置成20也是19.

worker_rlimit_nofile number

#注意 worker进程所能够打开的文件数量上限 ,如65535
error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

pid 存放master进程号的, 并且程序停止nginx.pid文件被删除。

#程序在运行的时候删除nginx.pid文件会导致使用nginx -s stop的时候报错,报找不到/run/nginx.pid文件所以停不了应用程序。

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

include指令:指明包含进来的其他配置文件片段
load_module file
模块加载配置文件:/usr/share/nginx/modules/*.conf
指明要装载的动态模块路径:/usr/lib64/nginx/modules
#现在加载模块主要有include在全局配置里面设置了
events {
worker_connections 1024;
}


ab 命令
watch -n0.5 "ps axo pid,cmd,psr |grep nginx|grep -v grep|grep -v master"

 

1、worker_rlimit_nofile number
worker进程所能够打开的文件数量上限 ,如65535

2、worker_connections number
每个worker进程所能够打开的最大并发连接数

3、总最大并发数: worker_rlimit_nofile * worker_connections

4、user method
指明并发连接请求的处理方法,默认自动选择最优方法。
use epoll;
5、accept_mutex on|off 互斥
处理新的连接请求的方法; on指由各个worker轮流处理新请求,off指每新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可以获得连接,造成
"惊群",影响性能。

调试配置方面

1、daemon on|off
on在后端运行,off在前端运行。
#适合调试测试环境使用

2、master_process on|off
是否启用worker进程


http配置介绍

1、 ngx_http_code_module
default_server 设定为默认虚拟主机
ssl 限制仅能够通过ssl连接提供服务
backlog=number 超过并发连接数后,新的请求进入后援队列的长度
rcvbuf=size 接受缓冲区大小 #根据内存大小设置
sndbuf=size 发送缓冲区大小 #根据内存大小设置

#注意
1. 基于port:
listen PORT: #指令监听在不同的端口

2.基于ip的虚拟主机
listen IP:PORT; #IP地址不同

3.基于hostname
server_name fqdn; #指令指向不同的主机名
#支持通配符和正则表达式


tcp_nodelay no|off

在keepalived模式下的连接是否启用TCP_NODELAY
当为off时,延迟发送,合并多个请求后在发送
#提升服务器性能,但是客户体验不好
当为on时,不延迟发送,来一个请求立即发送
#客户体检非常好,但是性能会有所损耗

sendfile on|off
on : 在内核当中直接封装报文然后直接发送到内核的socket buffer(socket缓冲区当中,然后直接由内核到网卡直接发送出去,正常请求要内核到用户空间再有用户空间到内核的网卡上无形当中又白跑了一圈)

off: 默认情况

server_tokens on|off|build|string

是否在响应报文的server首部显示Nginx版本

------------恢复内容结束------------

posted @ 2019-12-03 11:31  嚒~☆大白  阅读(146)  评论(0编辑  收藏  举报