Nginx配置文件conf解释

news2024/9/24 11:30:53

系列文章目录


文章目录

  • 系列文章目录
  • 前言


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

在这里插入图片描述
Centos上安装Nginx

http://www.javacui.com/service/493.html

Nginx日志格式配置

http://www.javacui.com/tool/610.html

#定义Nginx运行的用户和用户组
user www www;
 
# 是否后台运行
# daemon on;
 
# 是否开启工作进程
#master_process off
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;
   
#全局错误日志定义类型,debug|info|notice|warn|error|crit|alert|emerg 调试|信息|通知|警告|错误|临界|警报|紧急
error_log /usr/local/nginx/logs/error.log info;
  
#进程pid文件
pid /usr/local/nginx/logs/nginx.pid;
  
#为nginx工作进程改变打开最多文件描述符数目的限制。用来在不重启主进程的情况下增加限制。
#这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
#现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
#这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
worker_rlimit_nofile 65535;
  
events
{
    #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型
    #是Linux 2.6以上版本内核中的高性能网络I/O模型,linux建议epoll,如果跑在FreeBSD上面,就用kqueue模型。
    use epoll;
    # 网络连接序列化,解决惊群问题,一个请求发来Nginx后台是多进程模式,多个worker同时唤醒,但是只有一个可以处理连接
    # 如果每次唤醒的进程太多,会影响Nginx整体性能,默认为on,进程接收序列化,一个个来唤醒接收
    accept_mutex on;
    # 一个工作进程只能同时接受一个新的连接,否则可以同时接受所有新的连接,默认off建议on
    multi_accept on;
  
    #单个worker最大连接数,默认512,和操作系统有关
    worker_connections 1024;
  
    #keepalive超时时间。
    keepalive_timeout 60;
  
    #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
    #分页大小可以用命令getconf PAGESIZE 取得。
    #但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
    client_header_buffer_size 4k;
  
    #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
    open_file_cache max=65535 inactive=60s;
  
    #这个是指多长时间检查一次缓存的有效信息。
    #语法:open_file_cache_valid time 默认值:open_file_cache_valid 60 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.
    open_file_cache_valid 80s;
  
    #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。
    #语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 1 使用字段:http, server, location  这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态.
    open_file_cache_min_uses 1;
      
    #语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件是记录cache错误.
    open_file_cache_errors on;
}
   
   
   
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http
{
    #文件扩展名与文件类型映射表
    include /etc/nginx/mime.types;
  
    #默认文件类型
    default_type application/octet-stream;
  
    #默认编码
    #charset utf-8;
  
    # 服务器名字的hash表大小,保存服务器名字的hash表是由指令server_names_hash_max_size 和server_names_hash_bucket_size所控制的。
    # 参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。
    # 如果hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。
    # 第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.
    server_names_hash_bucket_size 128;
  
    # 客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
    client_header_buffer_size 32k;
  
    # 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
    large_client_header_buffers 4 64k;
  
    # 设定通过nginx上传文件的大小
    client_max_body_size 8m;
  
    # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on
    # 如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    sendfile on;
  
    # 开启目录列表访问,合适下载服务器,默认off。
    autoindex on;
  
    # 此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
    tcp_nopush on;
    # 该参数最核心的功能,就是把小包组成成大包,提高带宽利用率也就是著名的nagle算法
    # nagle算法完全由tcp协议的ack机制决定,如果对端ACK回复很快的话,nagle事实上不会拼接太多的数据包,虽然避免了网络拥塞,网络总体的利用率依然很低
    # nagle算法在与延迟确认互相作用的情况下,会产生严重的延时效果,这是需要警惕的
    # tcp_nodelay off,会增加通信的延时,但是会提高带宽利用率。在高延时、数据量大的通信场景中应该会有不错的效果
    # tcp_nodelay on,会增加小包的数量,但是可以提高响应速度。在及时性高的通信场景中应该会有不错的效果
    tcp_nodelay on;
  
    # 长连接超时时间,单位是秒,默认75
    keepalive_timeout 120;
    # 长连接使用的次数,默认100
    keepalive_requests 100;
  
    #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/plain application/x-javascript text/css application/xml;    #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
    gzip_vary on;
  
    #开启限制IP连接数的时候需要使用
    #limit_zone crawler $binary_remote_addr 10m;
  
    #负载均衡配置
    upstream test.javacui.com {
        #upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
        server 192.168.80.121:80 weight=3;
        server 192.168.80.122:80 weight=2;
        server 192.168.80.123:80 weight=3;
  
        #nginx的upstream目前支持4种方式的分配
        #1、轮询(默认)
        #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
        #2、weight
        #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
        #例如:
        #upstream bakend {
        #    server 192.168.0.14 weight=10;
        #    server 192.168.0.15 weight=10;
        #}
        #2、ip_hash
        #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
        #例如:
        #upstream bakend {
        #    ip_hash;
        #    server 192.168.0.14:88;
        #    server 192.168.0.15:80;
        #}
        #3、fair(第三方)
        #按后端服务器的响应时间来分配请求,响应时间短的优先分配。
        #upstream backend {
        #    server server1;
        #    server server2;
        #    fair;
        #}
        #4、url_hash(第三方)
        #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
        #例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
        #upstream backend {
        #    server squid1:3128;
        #    server squid2:3128;
        #    hash $request_uri;
        #    hash_method crc32;
        #}
  
        #tips:
        #upstream bakend{#定义负载均衡设备的Ip及设备状态}{
        #    ip_hash;
        #    server 127.0.0.1:9090 down;
        #    server 127.0.0.1:8080 weight=2;
        #    server 127.0.0.1:6060;
        #    server 127.0.0.1:7070 backup;
        #}
        #在需要使用负载均衡的server中增加 proxy_pass http://bakend/;
  
        #每个设备的状态设置为:
        #1.down表示单前的server暂时不参与负载
        #2.weight为weight越大,负载的权重就越大。
        #3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
        #4.fail_timeout:max_fails次失败后,暂停的时间。
        #5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
  
        #nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
        #client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
        #client_body_temp_path设置记录文件的目录 可以设置最多3层目录
        #location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
    }
    server
    {
        #监听端口
        listen 80;
  
        #域名可以有多个,用空格隔开
        server_name www.javacui.com;
        index index.html index.htm index.php;
        root /data/www/javacui;
  
        #对******进行负载均衡
        location ~ .*.(php|php5)?$
        {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
           
        #图片缓存时间设置
        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires 10d;
        }
           
        #JS和CSS缓存时间设置
        location ~ .*.(js|css)?$
        {
            expires 1h;
        }
           
        #日志格式设定
        log_format  main  '{
                    "remote_addr":"$remote_addr",
                    "remote_user":"$remote_user",
                    "time_local":"$time_local",
                    "request":"$request",
                    "status":"$status",
                    "request_time":"$request_time",
                    "upstream_response_time":"$upstream_response_time",
                    "request_length":"$request_length",
                    "bytes_sent":"$bytes_sent",
                    "body_bytes_sent":"$body_bytes_sent",
                    "gzip_ratio":"$gzip_ratio",
                    "connection_requests":"$connection_requests",
                    "http_referer":"$http_referer",
                    "http_user_agent":"$http_user_agent",
                    "http_x_forwarded_for":"$http_x_forwarded_for"
                }';
           
        #定义本虚拟主机的访问日志
        access_log  /usr/local/nginx/logs/host.access.log  main;
           
        #对 "/" 启用反向代理
        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;
  
            #缓冲区代理缓冲用户端请求的最大字节数,
            #如果把它设置为比较大的数值,例如256k,那么,无论使用firefox还是IE浏览器,来提交任意小于256k的图片,都很正常。如果注释该指令,使用默认的client_body_buffer_size设置,也就是操作系统页面大小的两倍,8k或者16k,问题就出现了。
            #无论使用firefox4.0还是IE8.0,提交一个比较大,200k左右的图片,都返回500 Internal Server Error错误
            client_body_buffer_size 128k;
  
            #表示使nginx阻止HTTP应答代码为400或者更高的应答。
            proxy_intercept_errors on;
  
            #后端服务器连接的超时时间_发起握手等候响应超时时间
            #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_connect_timeout 90;
  
            #后端服务器数据回传时间(代理发送超时)
            #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
            proxy_send_timeout 90;
  
            #连接成功后,后端服务器响应时间(代理接收超时)
            #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
            proxy_read_timeout 90;
  
            #设置代理服务器(nginx)保存用户头信息的缓冲区大小
            #设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
            proxy_buffer_size 4k;
  
            #proxy_buffers缓冲区,网页平均在32k以下的设置
            #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k
            proxy_buffers 4 32k;
  
            #高负荷下缓冲大小(proxy_buffers*2)
            proxy_busy_buffers_size 64k;
  
            #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
            #设定缓存文件夹大小,大于这个值,将从upstream服务器传
            proxy_temp_file_write_size 64k;
        }
        #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status on;
            access_log on;
            auth_basic "NginxStatus";
            auth_basic_user_file confpasswd;
            #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;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1677985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全域运营平台是什么?优缺点有哪些?

当下,全域运营赛道逐渐兴盛,全域运营服务商的数量也开始呈现爆发趋势。在此背景下,很多人都对某些品牌的全域运营平台优缺点产生了浓厚的兴趣。由于小编只使用过微火全域运营平台,因此,本期会着重分析微火运营平台的优…

白鹿以前的短视频:四川京之华锦信息技术公司

白鹿以前的短视频:时光剪影中的创意火花与成长轨迹 在短视频风起云涌的互联网时代,每一位创作者的早期作品都如同时间胶囊,封存着最初的创意与梦想。提及“白鹿”这一名字,不少人心中会立刻浮现出那个凭借独特风格和不懈努力&…

OpenAI新模型GPT-4o“炸裂登场” 响应速度堪比真人 关键还免费!

GPT-4o模型基于来自互联网的大量数据进行训练,更擅长处理文本和音频,并且支持50种语言。更值得一提的是,GPT-4o最快可以在232毫秒的时间内响应音频输入,几乎达到了人类的响应水平。 GPT-4o有多“炸裂”?核心能力有三 G…

【制作100个unity游戏之26】unity2d横版卷轴动作类游戏4(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言添加敌人受击动画第一种 配置闪烁动画第二种 受伤击退效果人物死亡源码完结 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第26篇中,我们将…

多元化、高辨识显示丨基于G32A1445的汽车尾灯解决方案

由刹车灯、倒车灯、转向灯、雾灯等组成的汽车尾灯,既能在光线低暗时发出照明信息,也可向周围环境传递车辆的行驶状态与意图信号,对于行车安全起着至关重要的作用。与传统尾灯相比,贯穿式汽车尾灯更加醒目、美观、安全,…

2024年将改变人类生活的七大技术

有没有想过未来会是什么样子?那么,不必等太久,因为2024年将会是充满惊人创新的一年,让你大开眼界。以下是七大新兴的科技创新趋势,它们无疑将在2024年改变我们的生活。 1. 人工智能技术 从智能手机、智能扬声器等日…

HI-TOP网关HT3S-DPM-ECS实现PROFIBUS DP大功率变频器与青岛港口汇川EtherCAT主站PLC通讯互联的案例研究

一、引言 随着工业自动化技术的不断发展,青岛港口寻求提升其物流自动化系统,以提高效率和可靠性,不同品牌和协议的工业设备之间的通讯互联成为了技术实现的重要挑战。在青岛港口,作为该系统核心的变频器和PLC之间需要无缝通讯&…

unity 学习笔记

一、 事件顺序 gameObjet Instantiate gameObjet.自定义函数 gameObjet.Start 二、预设体使用 例子:Button 点击创建 预设体 BagPanel

探索未来:Google I/O 2024 AI重磅发布一览

亲爱的读者们,大家期待已久的Google I/O开发者大会终于到来了!今年的大会尤为特别,Google在发布会上大力强调了人工智能(AI)的重要性,可以说AI成为了绝对的主角。为了让大家快速了解今年的重点内容&#xf…

webpack生成模块关系依赖图示例:查看构建产物的组成部分 依赖关系图

npm i -D webpack-bundle-analyzer core-js babel-loaderwebpack.config.js const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPlugin; module.exports {entry: ./src/index.js,output: {filename: main.js,},// mode: production, // 或者 produ…

现货黄金在线交易有哪些优势_EE trade

现货黄金在线交易拥有几项独特优势,使其成为广受投资者青睐的贵金属投资方式: 1. 全天候交易 现货黄金市场几乎可以实现24小时不间断交易,投资者可以根据全球市场的变动随时参与交易,这提供了极大的灵活性和即时反应市场变化的能…

【全开源】JAVA同城组局同城找搭子系统源码支持微信小程序微信公众号H5APP

同城组局同城找搭子系统 特色功能: 智能匹配:该系统能够根据用户的兴趣、爱好、时间等信息,智能匹配最适合的搭子。无论是看电影、打桌游还是户外运动,用户都能轻松找到志同道合的伙伴。活动丰富:除了基本的组局功能…

7.学习STL中的string类:版本、组件、构造、操作及应用

目录 1. 什么是STL 2. STL的版本 3. STL的六大组件 1. 为什么学习string类? 1.1 C语言中的字符串 2. 标准库中的string类 2.1 string类(了解) 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的容量操作 reserve 3. string类对象…

Google Chrome GPU渲染抓包

非安全模式启动 "C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content --disable-web-security 配置环境 set RENDERDOC_HOOK_EGL0 "C:/Program Files/Google/Chrome/Application/chrom…

哪款台灯护眼效果最好,护眼效果十足的五款台灯分享

在孩子学习过程中,有一样物品的重要性不容忽视,那就是一盏提供舒适光源的台灯。面对不断增加的学业负担,孩子们经常需要在夜晚借助台灯的光亮进行学习,这已经成为了家庭生活中普遍的情景。然而,我们必须给予足够的关注…

深圳比创达电子|EMC与EMI测试整改:确保电磁兼容性和干扰的设备

在电子设备的设计、生产和应用过程中,电磁兼容性(EMC)和电磁干扰(EMI)是两个不可忽视的关键因素。随着电子设备的普及和复杂性的增加,电磁兼容性问题愈发凸显其重要性。EMC与EMI测试整改作为确保电子设备电…

Vue 快速入门:Vue初级

语法规则 前端渲染 渲染有几种方式:原生js、js模板、Vue模板语法 原生js 使用字符串拼接 js模板语法 Vue.js 模板语法概述 Vue.js 是一个用于构建用户界面的渐进式框架,其模板语法非常灵活和直观。Vue 的模板语法基于 HTML,可以通过指令…

Pytorch读取自己的数据集

数据集 流程图 导包设置tfs创建datasets.ImageFolder创建torch.utils.data.DataLoader() import time import os from tqdm import tqdm import pandas as pd import numpy as np import torch import torchvision import torch.nn as nn import torch.nn.functional as F im…

UV:展uv

1.3dmax 选中物体 修改器列表选中“UV展开” 打开UV编辑器 断开圆圈 同理断开瓶底 展开侧面 剥离 拉直 排列 纹理盘格 用于查看排列位置 渲染UV模板 PS图片 将不要的部分填充为黑色 复制图片 删除多余 保存图片 添加材质球和位图 按M打开材质球编辑器 重置UV 将uv变为初始…

激光切割机价格多少钱一台?

随着科技的飞速发展,激光切割技术在制造业中的应用越来越广泛。它以高精度、高效率和高质量著称,是金属加工行业的理想选择。然而,对于初次接触或打算购买激光切割机的用户来说,最关心的问题之一就是价格。那么,激光切…