您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

nginx配置文件的注释 [企业网站源码]

  • 时间:2022-09-01 01:29 编辑: 来源: 阅读:293
  • 扫一扫,手机访问
摘要:nginx配置文件的注释 [企业网站源码]
NGX配置文件评论nginx的配置文件Nginx.conf配置详情如下:用户nginx nginx#Nginx创建用户和组:创建用户组 window下未指定worker _ processes 8;#工作进程:数量 根据硬件调整,通常等于CPU数量或两倍的CPU数量。 error _ log logs/error . log;error _ log logs/error . log notice;error_log日志/error.log信息;#错误日志:存储路径 PID logs/nginx . PID;#pid(进程标识符):存储路径 worker _ rlimit _ nofile 204800指定一个进程可以打开的描述符的最大数量:。 这个指令指的是nginx进程打开的文件描述符的最大数量。理论值应该是打开文件的最大数量(ulimit -n)除以nginx进程的数量。但是nginx的分配请求没有那么统一,所以最好和ulimit-n保持相同的值。 现在Linux 2.6内核的打开文件数是65535,那么worker_rlimit_nofile也要相应地填入65535。 这是因为nginx调度时对进程的请求分配不是那么均衡,所以如果填10240,当总并发达到30000-40000时,有些进程可以超过10240,会返回一个502错误。 事件{使用epoll#带epoll的I/O型号 建议linux centos epoll和FreeBSD使用kqueue,但在window下没有指定。 #补充说明:#和apache类似,nginx对于不同的操作系统有不同的事件模型。#A)标准事件模型#Select和poll属于标准事件模型。如果当前系统没有更有效的方法,nginx会选择select或poll#B)高效事件模型#Kqueue:对于FreeBSD 4.1+,OpenBSD 2.9+,NetBSD 2.0,MacOS X,在Mac OS X系统中使用双解析器的Kqueue可能会导致内核崩溃 #Epoll:适用于Linux内核版本2.6及更高版本的系统 #/dev/poll:适用于Solaris 7 11/99以上版本、惠普/UX 11.22以上版本(eventport)、IRIX 6.5.15以上版本和Tru64 UNIX 5.1A以上版本 #Eventport:对于Solaris 10 为了防止内核崩溃,有必要安装安全补丁。 工人_连接204800;#没有工作进程的最大连接数 根据硬件调整,配合前面的工作流程使用,尽可能大,但不要把cpu运行到100%。 每个进程允许的最大连接数,理论上,每个nginx服务器的最大连接数是 worker _ processes * worker _ connections keepalive _ time out 60;#保持活动超时 client _ header _ buffer _ size 4k#客户端请求标头的缓冲区大小 这可以根据系统的分页大小来设置。通常,请求报头的大小不会超过1k。但是,由于一般系统的分页大小大于1k,所以在这里设置。 #页面大小可以通过使用命令getconf PAGESIZE获得。 #[root @ web 001 ~]# getconf pagesize 4096 #但是,也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size的值必须设置为“系统分页大小”的整数倍 open _ file _ cache max = 65535 inactive = 60s;#这将指定打开文件的缓存,默认情况下不使用。max指定缓存的数量,建议与打开文件的数量保持一致。非活动是指文件在未被请求后需要多长时间才能被删除。 open _ file _ cache _ valid 80s#这是指检查缓存的有效信息的频率。 open _ file _ cache _ min _ use 1;在#open_file_cache指令中,inactive参数是时间内文件被使用的最小次数。如果超过这个数字,文件描述符总是在缓存中打开。例如,如果一个文件在非活动时间内没有使用过一次,它将被删除。 } # #设置一个http服务器,利用其反向代理功能提供负载均衡支持http { includedmime.types#设置由mime.type文件default _ type application/octet-stream定义的mime类型;log _ format main & gt;$ remote _ addr-$ remote _ user[$ time _ local]" $ request " & gt;⑦。$ status $ body _ bytes _ sent " $ http _ referer " & gt;⑦。“$ http _ user _ agent”“$ http _ x _ forwarded _ for”& gt;;log_format log404:$ status[$ time _ local]$ remote _ addr $ host $ request _ uri $ sent _ http _ location & gt;;日志格式设置 $remote_addr和$http_x_forwarded_for用于记录客户端的ip地址;$remote_user:用于记录客户端的用户名;$time_local:用于记录访问时间和时区;$request:用于记录请求的url和http协议;$status:用于记录请求状态;是200,$body_bytes_sent:记录发送给客户端的文件体的内容大小;$ http _ referrer:用于记录从该页面访问的链接;$http_user_agent:记录用户的浏览器信息;通常web服务器放在反向代理后面,无法获取用户的iP地址。通过$remote_add获得的IP地址就是反向代理服务器的IP地址。 反向代理服务器可以在转发请求的http头信息中加入x_forwarded_for信息,用来记录原客户端的IP地址和原客户端请求的服务器地址。 access _ log logs/host . access . log main;access _ log logs/host . access . 404 . log log 404;#使用log_format指令设置日志格式后,需要使用access_log指令指定日志文件的存储路径;服务器名称哈希桶大小128;#保存服务器名称的哈希表由指令server_names_hash_max_size和server_names_hash_bucket_size控制。 参数哈希桶大小始终等于哈希表的大小,并且是单向解析器缓存大小的倍数。 减少内存中的访问次数后,可以加快解析器中散列表键值的搜索。 如果哈希桶大小等于单向解析器的缓存大小,则在搜索键时,最坏情况下在内存中的搜索次数是2。 第一次是确定存储单元的地址,第二次是在存储单元中查找键值。 所以,如果Nginx给出了hash max size或者hash bucket size需要增加的提示,第一件事就是增加前面参数的大小。client _ header _ buffer _ size 4k#客户端请求标头的缓冲区大小 这可以根据系统的分页大小来设置。一般来说,请求的头大小不会超过1k,但是由于一般系统的分页大小大于1k,所以这里将其设置为分页大小。 页面大小可以通过使用命令getconf PAGESIZE获得。 large _ client _ header _ buffers 8 128k;用户请求标头缓冲区大小 nginx默认会使用client_header_buffer_size的缓冲区来读取头值,如果头太大,就会使用large_client_header_buffers来读取。 open _ file _ cache max = 102400 inactive = 20s;此指令指定缓存是否可以启动。 例如:open _ file _ cache max = 1000 inactive = 20s;open _ file _ cache _ valid 30sopen _ file _ cache _ min _ uses 2;打开文件缓存错误;Open_file_cache_errors语法:open_file_cache_errors on | off默认值:open_file_cache_errors off字段:http,server,location指令指定是否可以搜索文件来记录缓存错误。open_file_cache_min_uses语法:open_file_cache_min_uses number默认值:open_file_cache _ min _ uses s1字段:http,server,location指令在Open _ file _ cache指令的无效参数中指定了在一定时间范围内可以使用的最小文件数。如果使用较大的值,文件描述符在缓存中总是打开的。open_file_cache_valid语法:open_file_cache_valid time默认值:open_file_cache_valid 60使用字段:http,server,location。该指令指定何时检查open_file_cache中缓存项的有效信息。client _ max _ body _ size 300m设置nginx上传的sendfile的文件大小;Sendfile指令指定nginx是否可以使用sendfile函数(零拷贝模式)输出文件,一般情况下必须设置为on。 如果用于下载等。,磁盘IO要在重负载下使用,可以设置为off,平衡磁盘和网络IO的求解速度,减少系统正常运行时间。 tcp _ nopush on该选项允许或禁止TCP_CORK与socke的选项。当使用sendfile时,此选项仅使用proxy _ connect _ timeout 90后台连接超时_发起握手等待响应超时proxy _ read _ timeout 180成功连接后_等待后台服务器响应时间_实际上已经进入后台队列等待解决(也可以说是后台服务器解决请求的时间)。proxy _ send _ timeout 180后端数据传输时间_是指后端服务器必须在规定的时间内传输所有的数据proxy _ buffer _ size 256k设置从代理服务器读取的响应的第一部分的缓冲区大小。通常,这部分响应包含一个小的响应头。默认情况下,该值是在指令proxy_buffers中指定的缓冲区大小,但是可以将其设置为更小的proxy _ buffers 4 256k设置用于读取响应(从代理服务器)的缓冲区的数量和大小。默认值也是页面大小,可以是4k或8kproxy_busy_buffers_size 256k,具体取决于操作系统。代理_临时_文件_写入_大小256k在写入proxy_temp_path时设置数据大小,以防止工作进程在传输文件时阻塞过长的proxy _ temp _ path/data 0/proxy _ temp _ dir;proxy_temp_path和proxy_cache_path指定的路径必须在同一个分区中proxy _ cache _ path/data 0/proxy _ cache _ dir levels = 1:2 keys _ zone = cache _ one:200m inactive = 1 dmax _ size = 30g;#将内存缓存空间设置为200MB,1天未访问的内容将被自动清理,硬盘缓存空间为30GB。 keepalive _ timeout 120保持活动超时 tcp_nodelay打开;client _ body _ buffer _ size 512k如果设置为比较大的值,比如256k,那么提交任何小于256k的图片都是正常的,无论是使用火狐还是IE浏览器。 如果您使用默认的client_body_buffer_size设置(是操作系统页面大小的两倍,8k或16k)来注释此指令,将会出现问题。 无论使用firefox4.0还是IE8.0,如果提交一张200k左右的比较大的图片,都会返回500内部服务器错误proxy _ intercept _ errors on表示nginx阻止400或更高的HTTP响应代码。 上游bakend { server 127 . 0 . 0 . 1:8027;服务器127 . 0 . 0 . 1:8028;服务器127 . 0 . 0 . 1:8029;哈希$ request _ uri}上游}nginx目前支持四种分配方式。1.轮询(默认)每个请求按照时间顺序逐一分配给不同的后台服务器。如果后台服务器宕机,可以自动拒绝。 2.权重指定轮询概率。权重与访问比例成正比,用于后台服务器性能不均衡的情况。 例如:上游面包店{ server 192 . 168 . 0 . 14 weight = 10;服务器192.168.0.15权重= 10;}2.ip_hash根据ip访问的哈希结果分配每个请求,使每个来宾访问一个后台服务器,处理会话问题。 示例:上游bakend { ip _ hash服务器192 . 168 . 0 . 14:88;服务器192 . 168 . 0 . 15:80;}3.fair(第三方)根据后台服务器的响应时间分发请求,响应时间短的优先。 上游后端{服务器server1服务器server2公平;}4.url_hash(第三方)根据访问url的哈希结果来分发请求,这样每个url都被定向到同一个后台服务器,在后台服务器缓存的时候更有效。 示例:在上游添加一条hash语句,其他参数如权重等不能写入server语句。hash_method是哈希算法上游后端{服务器squid 1:3128;服务器squid 2:3128;哈希$ request _ urihash _ method crc32}温馨提示:上游面包房{#定义负载均衡设施的Ip和设施状态} { ip _ hash服务器127.0.0.1:9090宕机;服务器127.0.0.1:8080权重= 2;服务器127 . 0 . 0 . 1:6060;服务器127.0.0.1:7070备份;}在需要负载均衡的服务器中添加proxy _ pass http://baked/每个设施的状态设置为:1.down,表示设施前的服务器暂时不参与负载;2.重量就是重量,负重的重量越大。 3.max_fails:默认情况下,允许的请求失败次数为1。当超过最大数量时,返回由proxy_next_upstream板定义的错误。4.fail _ time out:Max _ Fails失败后的挂起时间。 5 .备份:当所有其他非备份机器停机或繁忙时,请求备份机器。 所以这台机器的压力会最轻。 Nginx支持同时设置多组负载均衡,可以用于未使用的服务器。 Client_body_in_file_only设置为On,这样可以将来自客户端post的数据记录在文件中,该文件可用于设置debugclient_body_temp_path的目录。最多可以设置三级目录位置来匹配URL。可以进行重定向或新代理负载均衡# #配置虚拟机服务器{ listen 80配置监听端口server _ nameimage。* * *;com配置访问域名位置~* \。(mp3 | exe)$ {负载平衡以“MP3或exe”结尾的地址proxy _ pass http://img _ relay $ request _ uri;设置代理服务器的端口或套接字,URLproxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;以上三行的目的是将代理服务器收到的信息传输到真实服务器} location/face { if($ http _ user _ agent ~ * " xnp)”{ rewrite(。*)$ http://211.151.188.190:8080/face.jpg重定向;} proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;error _ page 404 502 = @ fetch} location @ fetch { access _ log/data/logs/face . log log log 404;重写^(.*)$ http://211.151.188.190:8080/face.jpg重定向;} location/image { if($ http _ user _ agent ~ * " xnp)){重写^(.*)$ http://211.151.188.190:8080/face.jpg重定向;} proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;error _ page 404 502 = @ fetch} location @ fetch { access _ log/data/logs/image . log log 404;重写^(.*)$ http://211.151.188.190:8080/face.jpg重定向;}} # #其他例子服务器{ listen 80服务器名称*。***.com *。***.cn;位置~* \。(MP3 | exe)$ { proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;} location/{ if($ http _ user _ agent ~ * " xnp "){重写^(.*)$ http://i1。***img.com/help/noimg.gif重定向;} proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;#error_page 404 http://i1。* * * img . com/help/no img . gif;error _ page 404 502 = @ fetch} location @ fetch { access _ log/data/logs/baijiaqi . log log log 404;重写^(.*)$ http://i1。***img.com/help/noimg.gif重定向;} }服务器{ listen 80服务器名称*。* * * img.com位置~* \。(MP3 | exe)$ { proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;} location/{ if($ http _ user _ agent ~ * " xnp "){重写^(.*)$ http://i1。* * * img . com/help/no img . gif;} proxy _ pass http://img _ relay $ request _ uri;proxy _ set _ header Host $ hostproxy _ set _ header X-Real-IP $ remote _ addr;proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;#error_page 404 http://i1。* * * img . com/help/no img . gif;error _ page 404 = @ fetch} # access _ log offlocation @ fetch { access _ log/data/logs/baijiaqi . log log 404;重写^(.*)$ http://i1。***img.com/help/noimg.gif重定向;} }服务器{ listen 8080服务器名称ngx-ha。* * * img.comlocation/{ stub _ status on;access _ log off} }服务器{ listen 80server_name imgsrc1。***.网;根html} server { listen 80服务器名称***。com w.***。com# access _ log/usr/local/nginx/logs/access _ log main;位置/{重写^(.*)$ http://www .***.com/;} }服务器{ listen 80服务器名称*******。com w.*******。com# access _ log/usr/local/nginx/logs/access _ log main;位置/{重写^(.*)$ http://www .*******.com/;} }服务器{ listen 80服务器名称******。com# access _ log/usr/local/nginx/logs/access _ log main;位置/{重写^(.*)$ http://www .******.com/;} location/NginxStatus { stub _ status on;access _ log onauth _ basic " NginxStatusauth _ basic _ user _ file conf/htpasswd;} #设置地址位置~ /\。ht {全部否认;查看Nginx状态。} #访问。禁止htxxx文件}注意:变量Ngx_http_core_module板支持内置变量,其名称与apache内置变量一致。 首先解释一下用户请求标题中的行,比如$http_user_agent,$http_cookie等。 此外,还有一些其他变量$args。此变量等于请求行中的参数。$content_length等于请求行中“content_length”的值。 $content_type等同于请求头中“content_type”的值$document_root等同于当前请求的root指令指定的值$document_uri等同于$uri $Host等同于请求头中“Host”行指定的值或请求到达的服务器的名称(没有Host行)$limit_ Rate允许限制的连接速率$request_method等同于请求的方法, 通常“GET”或“post”$ remote _ addr client IP $ remote _ port client port $ remote _ user等于用户名,ngx_http_auth_basic_module验证$request_filename当前请求的文件的路径名,$request_body_file$request_uri由root或别名组成,uri请求包含参数$ query _ string的完整初始URI。 像$args一样,$sheeme http模式(http,https)是关于评估的,例如,重写(。+)$ $ sheme://example . com $;重定向;$server_protocol相当于request的协议,“HTTP/或”HTTP/$server_addr request”到达的服务器的ip一般用于系统调整。 为了避免系统调优,有必要在listen指令中指明ip并使用bind参数。 请求到达的服务器名称Server name $ server _ name被请求服务器的端口号$URI等于当前请求中的URI,可能与初始值不同,如内部重定向或索引。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部