Nginx配置详解

使用的用户和组
user  www www;

指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)
worker_processes 8;

前方高能,请注意!下面分别是开启了8个内核,8个进程(如果需要开启16进程,00000001 修改成00000001 00000010 代表第一个CPU内核处理第一个和第二个进程,有多少个进程就写多少个数,每个数的第几位代表对应的第几核)
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;

下面这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是系统的最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n(需要在Linux上调整这个数)的值保持一致。
worker_rlimit_nofile 204800;

使用epoll的I/O模型,用这个模型来高效处理异步事件
use epoll;

每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes * worker_connections。
worker_connections 204800;

限制用户上传文件的大小
client_max_body_size 300m;

客户端缓存文件的大小
client_body_buffer_size 128k;

客户端请求内容超时时间,1分钟
client_body_timeout  600;

客户端请求header头信息的超时时间,1分钟
client_header_timeout  600;

这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
open_file_cache max=65535 inactive=60s;

这个是指多长时间检查一次缓存的有效信息。
open_file_cache_valid 80s;

指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件更改信息一直是在缓存中打开的
open_file_cache_min_uses 1;

URI过长或request header过大导致400错误
#start
servername的哈希表大小 -- 客户端请求头缓冲区大小
server_names_hash_bucket_size 128k;

请求头总长度大于128k时使用large_client_header_buffers设置的缓存区。指令参数4为个数,128k为大小,申请4个128k。默认是8k。,
large_client_header_buffers 4 128k;
#end
   
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得
client_header_buffer_size 2k;
 
可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效。
sendfile on;

告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。就是说数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。tcp_nopush 这个参数只有 sendfile on 的时候才有用。
tcp_nopush on;

告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,
就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。
tcp_nodelay 只在 keepalive 连接状态中使用。
tcp_nodelay on;

http连接超时时间,默认是60s,功能是使客户端到服务器端的连接在设定的时间内持续有效,当出现对服务器的后继请求时,该功能避免了建立或者重新建立连接。切记这个参数也不能设置过大!否则会导致许多无效的http连接占据着nginx的连接数,终nginx崩溃!在一般情况下,这个配置会减少网络流量的消耗,减少请求连接数,例如用户在浏览网页的时候保持连接,减少连接数的开销。但是在高并发下,这个配置会直接影响NGINX的性能。相反,这个数调小可以提高并发数。
keepalive_timeout 60;

下面这个参数将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
open_file_cache max=204800 inactive=20s;

open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,
文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除
open_file_cache_min_uses 1;
 
下面这个是指多长时间检查一次缓存的有效信息。
open_file_cache_valid 30s;
 
隐藏响应头中的有关操作系统和web server(Nginx)版本号的信息,这样对于安全性是有好处的。
server_tokens off;

 

另外,FastCGI自身也有一些配置需要进行优化,如果你使用php-fpm来管理FastCGI,可以修改配置文件中的以下值:
同时处理的并发请求数,即它将开启最多60个子线程来处理并发连接。
<value name="max_children">60</value>

最多打开文件数。
<value name="rlimit_files">65535</value>

每个进程在重置之前能够执行的最多请求数。
<value name="max_requests">65535</value>

内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值