nginx 企业应用配置-1 | 学习笔记(一)

简介: 快速学习nginx 企业应用配置-1。

开发者学堂课程【Linux Web服务器Nginx搭建与配置nginx 企业应用配置-1学习笔记,与课程紧密联系,让用户快速学习知识.

课程地址:https://developer.aliyun.com/learning/course/579/detail/7988


nginx 企业应用配置-1


目录

一.nginx配置

二.ngx_http_core_module


一、nginx配置

性能优化相关的配置:

1、 worker_processes number | auto

worker进程的数量;通常应该为当前主机的cpu的物理核心数

注:

worker进程的数量不是越多越好,一般与当前cpu的物理核心数数量一致即可,因为worker进程还涉及到上下文切换的问题,通常来说进程与进程之间是无法共享资源的。

比如一个用户数据第一次访问worker时,但下次使用时会刷新进入下一个worker,所以之前的信息就无法使用了。

但在同一个worker中,虽然是不同的用户进行访问,但是所分配的cpu一样。我们就可以使用一个worker为其提供服务。

worker_processes 决定工作进程的数量

此外,我们还可以进行cpu的绑定,将具体的一个worker和cpu绑定在一个cpu内核上去,这样的好处在于提高缓存的命中率,因为在cpu中自带就有缓存,若将worker进行绑定,那么cpu中的缓存就可以不断地提供使用。

如果不进行绑定,worker就存在不稳定性,会在不同的cpu中进行切换,使得信息失效,由此影响性能。

  1. worker_cpu_affinity cpumask…

worker_cpu_affinity auto [cpumask] 绑定worker与cpu可以提高缓存命中率,如果worker始终与一个cpu绑定,如此一来cup中的资源可以一直提供给worker使用,避免了worker四处跳跃导致性能受到影响。

CPU MASK: 00000001:0号CPU

00000010:1号CPU

10000000:8号CPU

绑定语法:

worker_cpu_affinity 0001 0010 0100 1000;

worker_cpu_affinity 01011010;

实例:当我们在四颗cup中只用两颗时,首先对设置进行修正,将auto改为2,于是当前的worker数变为两个:worker-processes auto变为worker-processes 2.•

一般使用ps查找工作在cup的worker

[root@contos7 nginx]#ps axo pid,cmd pid | grop nginx

36800 nginx :master process nginx   0

36801 nginx:worker process          1

36802 nginx :worker Process          2

36815 grep –color=auto nginx        0

多次行走都没有变化,此时我们可以进行触发。结果表示:

36800 nginx :master process nginx   0

36801 nginx:worker process          1

36802 nginx :worker Process          1

36815 grep –color=auto nginx        0

得出worker进程为和cpu进行绑定。

于是我们使用worker_cpu_affinity(例子 0001 0010 0100 1000)这个指令来进行绑定,affinity 为亲缘性,写法参照CPU MASK。

  1. worker_priority number

指定worker进程的nice值,设定worker进程优先级:[-20,20]

默认优先级由为,可以使用worker_priority number来指定优先级,以-10为例

User nginx

Worker-processes 2

Worker-cpu-affinity 0010 0010;

Worker-priorrity -10

Error-log /var/log/nginx/error.log

Pid /run/nginx.pid

绑定结果

36800 nginx :master process nginx   0   0

36801 nginx:worker process          1   -10

36802 nginx :worker Process          2   -10

36815 grep –color=auto nginx        0   0

以20为例

User nginx

Worker-processes 2

Worker-cpu-affinity 0010 0010;

Worker-priorrity 19

Error-log /var/log/nginx/error.log

Pid /run/nginx.pid

绑定结果

36800 nginx :master process nginx   0   0

36801 nginx:worker process          1   19

36802 nginx :worker Process          2   19

36815 grep –color=auto nginx        0   0

得出优先级最大值只能到19

以19为例

User nginx

Worker-processes 2

Worker-cpu-affinity 0010 0010;

Worker-priorrity 19

Error-log /var/log/nginx/error.log

Pid /run/nginx.pid

绑定结果

36800 nginx :master process nginx   0   0

36801 nginx:worker process          1   19

36802 nginx :worker Process          2   19

36815 grep –color=auto nginx        0   0

以199为例

User nginx

Worker-processes 2

Worker-cpu-affinity 0010 0010;

Worker-priorrity 199

Error-log /var/log/nginx/error.log

Pid /run/nginx.pid

绑定结果

36800 nginx :master process nginx   0   0

36801 nginx:worker process          1   19

36802 nginx :worker Process          2   19

36815 grep –color=auto nginx        0   0

此时设置数值已超过但是优先级最大还是19,语法检查不出错误

  1. worker_rlimit_nofile number

worker进程所能够打开的文件数量上限,如6553

没有默认值,可按情况设置

Syntax  worker.rlimit_core size

Default ___

Context: main

事件驱动相关的配置

events (

}

1. worker connections number

每个worker进程所能够打开的最大并发连接数数量,如10240

总最大并发数:worker-processes * worker-connections

2、use method

指明并发连接请求的处理方法,默认自动选择最优方法

默认使用use epoll;优势在于epoll

3、accept mutex on I off 互斥

处理新的连接请求的方法:on指由各个worker轮流处理新请求Off指每个新请求的到达都会通知(唤醒)所有的worker进程 但只有 个进程可获得连接,造成“惊群”,影响性能。

设置范围只能在event上

Synitabc   accept.mutex on Ioff

Default    accept muter off,

Context    events

调试和定位问题

1. daemon on off

是否以守护进程方式运行nignx,默认是守护进程方式,

Syntac     daemon on I off

Default     daemon on

Contest     main

作用:Determines whether nginx should become a daemon. Mainly used during development

我们只能放在下面的语句块(命域语句块)中:

User nginx

Worker-processes 2

Worker-cpu-affinity 0010 0010;

Worker-priorrity -10

Error-log /var/log/nginx/error.log

Pid /run/nginx.pid

2、master_process on|off

是否以master/worker模型运行nginx;默认为on

off将不启动worker

3、 error_log file [level]

错误日志文件及其级别;出于调试需要,可设定为debug;但debug仅在编译时使用了”-with-debug”选项时才有效

方式:file /path/logfile;

stderr:发送到标准错误

syslog:server-addresslparameter=values]:发送到syslog memory:size内存                level:debuglinfo|notice|warn|error|crit|alterlemerg

http协议的相关配置

http {

… …

server {

server name

root

location [OPERATOR] /uri/ {

}

}

server {

}

}

相关文章
|
15天前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
49 0
|
16天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
24 0
|
15天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
47 0
|
17小时前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
9 0
|
1天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
9天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
49 3
|
15天前
|
安全 应用服务中间件 网络安全
linux_nginx中添加ssl配置(open ssl)
linux_nginx中添加ssl配置(open ssl)
25 1
|
15天前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
32 1
|
19天前
|
安全 应用服务中间件 网络安全
SSL原理、生成SSL密钥对、Nginx配置SSL
现在,你的Nginx虚拟主机应该已经配置了SSL,可以通过HTTPS安全访问。确保在生产环境中使用有效的SSL证书来保护通信的安全性。
30 0
|
21天前
|
域名解析 缓存 负载均衡
Nginx正向代理域名的配置
Nginx正向代理域名的配置