• Nginx详细配置


    结构图

    全局配置

    #nginx进程,一般设置为和cpu核数一样

    worker_processes 4;

    #错误日志存放目录

    error_log  /data1/logs/error.log  crit;

    #运行用户,默认即是nginx,可不设置 user nginx

    #进程pid存放位置

    pid        /application/nginx/nginx.pid;

    #Specifies the value for maximum file descriptors that can be opened by this process.

    #最大文件打开数(连接),可设置为系统优化后的ulimit -HSn的结果

    worker_rlimit_nofile 51200;

    #cpu亲和力配置,让不同的进程使用不同的cpu

    worker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;

    #工作模式及连接数上限

    events块配置

    events

    {

      #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

      use epoll;       

      #单个后台worker process进程的最大并发链接数  

      worker_connections 1024; 

    }

    http块配置

    http

    {

      http全局块配置

      #文件扩展名与类型映射表

      include mime.types; 

       #默认文件类型

      default_type application/octet-stream;

      #limit模块,可防范一定量的DDOS攻击

      #用来存储session会话的状态,如下是为session分配一个名为one的10M的内存存储区,限制了每秒只接受一个ip的一次请求 1r/s

      limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

       limit_conn_zone $binary_remote_addr zone=addr:10m;

       include       mime.types;

      default_type  application/octet-stream;

       #第三方模块lua防火墙

      lua_need_request_body on;

      #lua_shared_dict limit 50m;

      lua_package_path "/application/nginx/conf/waf/?.lua";

      init_by_lua_file "/application/nginx/conf/waf/init.lua";

      access_by_lua_file "/application/nginx/conf/waf/access.lua";

      #设定请求缓存

      server_names_hash_bucket_size 128;

      client_header_buffer_size 512k;

      large_client_header_buffers 4 512k;

      client_max_body_size 100m;

      #隐藏响应header和错误通知中的版本号

      server_tokens off;

      #开启高效传输模式

      sendfile on;

      #激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布, 积极的作用是减少网络报文段的数量

      tcp_nopush     on;

      #激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能

      tcp_nodelay on;

      #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;

      #连接超时时间,单位是秒

      keepalive_timeout 60;

      #开启gzip压缩功能

      gzip on;

      #设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩。建议设置成大于1K。如果小于1K可能会越压越大。

      gzip_min_length  1k;

      #压缩缓冲区大小。表示申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。

      gzip_buffers     4 16k;

      #压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可。

      gzip_http_version 1.0;

      #压缩比率。用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。

       gzip_comp_level 9;

      #用来指定压缩的类型,“text/html”类型总是会被压缩

      gzip_types       text/plain application/x-javascript text/css application/xml;

      #vary header支持。该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用 Squid缓存经过Nginx压缩的数据。

      gzip_vary off;

      #开启ssi支持,默认是off

      ssi on;

      ssi_silent_errors on;

      #设置日志模式 log_format  access  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

      #反向代理负载均衡设定部分

      #upstream表示负载服务器池,定义名字为backend_server的服务器池

      upstream backend_server

      {

         server   127.0.0.1:8877 weight=1 max_fails=2 fail_timeout=30s;

        server   127.0.0.1:8878 weight=1 max_fails=2 fail_timeout=30s;

        #设置由 fail_timeout 定义的时间段内连接该主机的失败次数,以此来断定 fail_timeout 定义的时间段内该主机是否可用。默认情况下这个数值设置为 1。零值的话禁用这个数量的尝试。 设置在指定时间内连接到主机的失败次数,超过该次数该主机被认为不可用。

         #这里是在30s内尝试2次失败即认为主机不可用。

      }

      

      Server块配置

      #基于域名的虚拟主机

      server

      {

        Server全局块配置

         #监听端口

        listen       8080;

        server_name  localhost;

        #首页排序

        index index.html index.htm index.asp;

        #站点根目录,即网站程序存放目录

        root  /data0/abc;

        #错误页面

        error_page 500 502 404 /templates/kumi/phpcms/404.html;

       

        location块配置

        #location 标签,根目录下的.svn目录禁止访问

        location ~ /.svn/

        {

          #禁止访问所有

           deny all;

          #允许访问的ip

          #allow 127.0.0.1

        }

         #符合asp扩展名的请求调度到

        location ~ .asp$

        {

          #抛给本机的8878端口

          fcgi server fastcgi_pass  127.0.0.1:8878; 

          #设定动态首页

          fastcgi_index index.asp;   

          include fcgi.conf;

        }

         #将符合js,css文件的等设定expries缓存参数,要求浏览器缓存。

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

        {

          #客户端缓存上述js,css数据30天

          expires      30d; 

        }

  • 相关阅读:
    EasyHLS实现将IPCamera摄像机的RTSP流转成HLS(ts+m3u8)直播输出
    EasyHLS实现将IPCamera摄像机的RTSP流转成HLS(ts+m3u8)直播输出
    EasyHLS实现将IPCamera摄像机的RTSP转HLS直播输出
    基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案
    基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案
    EasyRTMP实现RTMP异步直播推送之环形缓冲区设计
    EasyRTMP实现RTMP异步直播推送之环形缓冲区设计
    EasyRTMP实现的rtmp推流的基本协议流程
    EasyRTMP实现的rtmp推流的基本协议流程
    EasyRTMP实现对接海康、大华等IPCamera SDK进行RTMP推送直播功能
  • 原文地址:https://www.cnblogs.com/zousc/p/12883865.html
Copyright © 2020-2023  润新知