Nginx配置文件详解



user www www;                               #定义nginx运行的用户和用户组

worker_processes auto;                    #nginx进程数,建议设置为CPU总核心数,也可以根据服务器性能,设置auto

error_log /var/log/nginx/error.log info;        #全局错误日志定义类型,crit 记录内容最少,degug记录内容最多,默认crit  [ debug | info | notice | warn | error | crit ]

pid /var/run/nginx.pid;                               #PID文件,记录当前启动的Nginx进程ID

worker_rlimit_nofile 65535;                         #单个nginx进程打开的最多文件描述符数目


#工作模式与连接数上限

events {

    use epoll;                             #事件驱动模型的选择, use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]等

    worker_connections 131072;   #单个worker process进程的最大并发连接数(最大连接数=连接数*进程数)

}


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

http {

    include mime.types;                                 #文件扩展名与文件类型映射表

    default_type application/octet-stream;      #默认文件类型

   

    #设定日志格式    

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

                              '$status $body_bytes_sent "$http_referer" '

                              '"$http_user_agent" "$http_x_forwarded_for"';


    charset utf-8;                                    #编码格式

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

    client_header_buffer_size 32k;             #客户端请求头部的缓冲区大小

    large_client_header_buffers 4 64k;       #客户请求头缓冲大小

    keepalive_timeout 60;                         #连接超时时间

    

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

    tcp_nopush on;     #待数据包装满数据发出,解决网络拥塞,配合sendfile使用

    tcp_nodelay on;    #收到数据包就发出


    # 作为文件服务器下载使用,开启目录列表访问

    autoindex on;                   #显示目录

    autoindex_exact_size on;   #显示文件大小

    autoindex_localtime on;     #显示文件时间

    

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

    fastcgi_connect_timeout 300;    #nginx服务器和后端fasstcgi服务器连接的超时时间

    fastcgi_send_timeout 300;        #nginx允许fastcgi服务器返回数据的超时时间,在规定时间内后端服务器必须传完所有数据,否则nginx断开连接

    fastcgi_read_timeout 300;        #nginx从fastcgi服务器读取响应信息的超时时间,表示连接建立成功后,nginx等待后端服务器的响应时间

    fastcgi_buffer_size 64k;           #nginx fastcgi的缓冲区大小,用来读取从fastcgi服务器收到的第一部分响应信息的缓冲区大小

    fastcgi_buffers 4 64k;             #设定用来读取从fastcgi服务器收到的响应信息的缓冲区大小和缓冲区数量

    fastcgi_busy_buffers_size 128k;        #用于设置系统繁忙时可以使用的 proxy_buffers大小

    fastcgi_temp_file_write_size 128k;     #fastcgi临时文件的大小

    

    upstream bj_backend_server {

        #weight 参数代表权重值,权重值越高被分配的几率越大

        server 172.17.0.15:80    weight=5;

        server 172.17.0.16:80    weight=3;

        server 172.17.0.17:80    weight=2;        

    }

    #HTTP服务器

        listen   80;

        server_name    www.acj.com;

    #对所有请求进行负载均衡请求

    location /  {

        root      /data/app;                                 #定义网站根目录位置

        index    index.html index.htm;                   #定义首页索引文件名称

        proxy_pass    http://bj_backend_server;    #请求转向bj_backend_server 定义服务器列表

        proxy_set_header Host $Host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $remote_addr;

        #后端web服务器可以通过X-Forwarded-For获取用户真是IP

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

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

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

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

        proxy_buffers 3 32k;                   #proxy_buffers缓冲区

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

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

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

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

    }

}

©著作权归作者所有:来自51CTO博客作者Patanis的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. LDAP/SASL/GSSAPI/Kerberos编程API(5)--krb5应用服务
  2. Mysql 读写分离、主从复制
  3. 如何在敏捷项目中管理范围变更?
  4. 苹果Mac查看多张图片的方法
  5. 苹果Mac屏幕录制分享软件:Berrycast
  6. 【产品】星环科技Sophon Edge边缘计算平台持续赋能千家万业
  7. 刚开始接触苹果Mac,如何认识桌面上的基本功能?
  8. 详解服务器处理器基础知识
  9. 详解服务器性能测试基准体系

随机推荐

  1. mysql5.7.24启动报错:ERROR 1862 (HY000):
  2. Discuzx2.5 数据库连接问题 Host '**
  3. Python 连接数据库 mysql
  4. SELECT * FROM MULTIPLE + DYNAMIC table
  5. 使用来自相同表注释的两个外键来休眠
  6. [实战]MVC5+EF6+MySql企业网盘实战(27)—
  7. 如何在SQL查询中显示特定范围的数字
  8. 从零开始搭建框架SSM+Redis+Mysql(二)之MAV
  9. MySQL中find_in_set的用法(某个字段包含某
  10. mysql-proxy实现读写分离