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 {

}

}

相关文章
|
23天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
56 7
|
19天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
24天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
11天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
31 3
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
202 1
nginx配置反向代理404问题
|
19天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
37 4
|
19天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
42 3
|
19天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
72 3
|
21天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
136 1
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx配置
【10月更文挑战第22天】在实际配置 Nginx 时,需要根据具体的需求和环境进行调整和优化。同时,还需要注意配置文件的语法正确性和安全性。
51 7