2、配置文件常用信息

配置文件常用信息

全局快

  • 从配置文件开始到events块之间的内容,这些配置会影响nginx服务器整体运行,主要配置包括设置nginx服务器的用户(组),允许生产的worker-processes数,进程pid存放路径,日志路径以及配置文件的引入等。

events块

  • 主要为nginx服务器与用户的网络连接性能相关配置。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

http块

  • 代理,缓存和日志定义等大多数功能和第三方模块的配置都在这里。

  • http全局快配置的指令包括文件引入,MIME-TYPE定义、日志自定义,连接超时时间,单链接请求数上限等(可以嵌套多个server)。

  • server模块和虚拟主机密切相关,虚拟主机从用户的角度看,和一台独立的硬件主机是完全一样的,每个http块可以包含多个server块,每个server块就相当于一个虚拟主机。

  • location模块:配置请求的路由,以及各种页面的处理请求。

  • location语法

    = :表示精确匹配
    ^~ :表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

    ~ :表示区分大小写的正则匹配

    ~* :表示不区分大小写的正则匹配

    !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则

    / :通用匹配,任何请求都会匹配到。

    多个location配置的情况下匹配顺序为首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求

user  nginx;
worker_processes  auto;
worker_rlimit_nofile 32768; 

error_log  /var/log/nginx/error.log;

# pid    logs/nginx.pid;

events {
    worker_connections  1024;
    multi_accept on;
}
  • user nginx; 【定义nginx运行的用户和用户组】

  • worker_processes 1;

    ​ nginx进程数,其默认值为1,这意味着NGINX只运行一个worker,建议设置为CPU总核数。

    ​ 可以将其设置为auto。 这样nginx会自动根据核心数为生成对应数量的worker进程。

  • 【全局错误日志】

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

  • pid

    logs/nginx.pid; 【进程文件】

  • worker_rlimit_nofile
    使用ulimit检查文件描述符的数量:ulimit -n

    如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。

    NGINX提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:worker_rlimit_nofile 32768;

  • worker_connections

events {
worker_connections 1024; 【单个进程最大连接数(最大连接数=连接数*进程数)】

​ multi_accept on;

}

  • multi_accept

    multi_accept指令使得nginx worker能够在获得新连接的通知时尽可能多的接受连接。 此指令的作用是立即接受所有连接放到监听队列中。 如果指令被禁用,worker进程将逐个接受连接。

设定http服务器,利用它的反向代理功能提供负载均衡支持

http                        #HTTP区块开始

{

include mime.types;      #Nginx支持的媒体类型库文件

default_type application/octet-stream;      #默认媒体类型

#charset utf-8;                #默认编码

server_names_hash_bucket_size 128;      #服务器名字的hash表大小

client_header_buffer_size 32k;            #上传文件大小限制

large_client_header_buffers 4 64k;         #设定请求缓

client_max_body_size 8m;            #设定请求缓

sendfile on;     #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为o  #ff,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

autoindex on;          #开启目录列表访问,合适下载服务器,默认关闭。

tcp_nopush on;         #防止网络阻塞

tcp_nodelay on;         #防止网络阻塞

keepalive_timeout 120;       #连接超时,单位是秒

 

#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

 

#gzip模块设置

gzip on;                   #开启gzip压缩输出

gzip_min_length 1k;            #最小压缩文件大小

gzip_buffers 4 16k;              #压缩缓冲区

gzip_http_version 1.0;      #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)

gzip_comp_level 2;         #压缩等级

gzip_types text/x-javascript text/css application/xml;    #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。

gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;   #开启限制IP连接数的时候需要使用

 

#虚拟主机的配置

server

{

listen 80;                  #监听端口

server_name localhost;            #提供服务的域名主机名

location / {               #第一个location区块开始

root html;                #站点的根目录,相当于Nginx的安装目录

index index.html index.htm index.jsp;   #默认的首页文件,多个用空格分开

}                    #第一个location区块结果

 

#图片缓存时间设置

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 10d;

}

#JS和CSS缓存时间设置

location ~ .*\.(js|css)?$

{

expires 1h;

}

 

#日志格式设定

log_format access '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

access_log /var/log/nginx/access_$(data+%F -d -1day).log access;    #定义本虚拟主机的访问日志

 

location / {                           #对 "/" 启用反向代理

proxy_pass http://127.0.0.1:88;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;    #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

#以下是一些反向代理的配置,可选

proxy_set_header Host $host;

client_max_body_size 10m;          #允许客户端请求的最大单文件字节数

client_body_buffer_size 128k;       #缓冲区代理缓冲用户端请求的最大字节数,

proxy_connect_timeout 90;     #nginx跟后端服务器连接超时时间(代理连接超时)

proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)

proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)

proxy_buffer_size 4k;        #设置代理服务器(nginx)保存用户头信息的缓冲区大小

proxy_buffers 4 32k;       #proxy_buffers缓冲区,网页平均在32k以下的设置

proxy_busy_buffers_size 64k;            #高负荷下缓冲大小(proxy_buffers*2)

proxy_temp_file_write_size 64k;          #设定缓存文件夹大小,大于这个值,将从upstream服务器传

}

 

#设定查看Nginx状态的地址

location /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

auth_basic_user_file conf/htpasswd;          #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。

}

#本地动静分离反向代理配置

#所有jsp的页面均交由tomcat或resin处理

location ~ .(jsp|jspx|do)?$ {

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8080;

}

 

#所有静态文件由nginx直接读取不经过tomcat或resin

location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$

{ expires 15d; }

location ~ .*.(js|css)?$

{ expires 1h; }

}#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;  【开启高效文件传输模式】
#tcp_nopush     on;   

#keepalive_timeout  0;
keepalive_timeout  65;  【连接超时,单位是秒】
【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值