nginx的基本配置与参数说明

全局块:

#运行用户
user nobody;

#启动进程,一般设置成和cpu的数量相等
worker_processes 1;

#全局错误日志以及PID文件
#error_log logs/error.log
#error_log logs/error.log notice;
#error_log logs/error.log  info;

#pid logs/nginx.pid;

events块:

#工作模式以及连接数上限
events {

    #设置网路连接序列化,防止惊群现象发生,默认为on
    accept_mutex on;
    #设置一个进程是否同时接受多个网络连接,默认为off
    multi_accept on;

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

    #单个后台worker process进程的最大并发连接数
    worker_connections 1024;

    #并发总数是 worker_process 与 worker_connections 的乘积
    #即 max_clients = worker_process * worker_connections
    #在设置反向代理的情况下,max_clients = worker_process * worker_connections / 4
    #根据以上条件,正常情况下Nginx Sever可以应付最大的连接数为: 4 * 8000 = 32000
    #worker_connects 值得设置和物理内存大小有关
    #并发受到IO约束,max_clients的值需要小于系统可以打开的最大文件数
    #系统可以打开文件数量和内存的大小有直接关系(成正比),一般1GB内存可以打开文件数大约为10万左右
    #可以根据命令去查看内存的VPS可以打开文件句柄数:cat /proc/sys/fs/file-max
    #所以配置时,根据主机的物理CPU和内存进行配置
}

http块:

#可以嵌套多个server配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
#如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
http{
    #设定mime类型,类型由mime.type文件定义
    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"';

    access_log logs/access.log main;

    #sendfile 指令指定nginx是否调用sendfile函数(zero copy方式)来输出文件
    #对于普通文件,需要设置为on
    #用来进行下载等应用磁盘重负载应用,可设置为off
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile on;
    #tcp_nopush on;

    #连接超时时间
    keepalive_timeout  65;
    tcp_nodelay on;

    #开启gzip压缩
    gzip on;
    gzip_disable "MSIE [1-6].";

    #设定请求缓冲
    client_header_buffer_size    128k;
    large_client_header_buffers  4 128k;


    upstream mysvr {
        server 127.0.0.1:7878;
        #热备
        server 192.168.10.121:3333 backup;
    }

   
    #设定虚拟主机配置
    server{
       #单连接请求上限次数。
       keepalive_requests 120;

       #监听80端口
       #如果是https安全请求,则需要监听 443 端口
       listen 80;
       #定义访问域名
       server_name www.test.com

       #开启ssl证书
       #ssl on;
       #ssl_certificate      /etc/nginx/server.crt;
       #ssl_certificate_key  /etc/nginx/server.key;

       #服务器默认网站更目录位置
       root clients;

       #设定主机的访问日志
       access_log logs/nginx.access.log main;

       #默认请求
       location / {

           #反向代理
           #请求转向mysvr 定义的服务器列表
           proxy_pass  http://mysvr;
           #拒绝的ip
           deny 127.0.0.1;
           #允许的ip
           allow 172.18.5.54;

           #首页索引文件
           index index.php index.html index.htm
       }


       #错误提示页
       error_page 500 502 503 504 /50x.html;
       location = /50x.html{
       }

       #静态文件
       location ~ ^/(images|javascript|js|css|flash|media|static)/{
           #过期30天
           expires 30d;
       }

       #PHP 脚本请求全部转发到FastCGI处理,使用FastCGI默认配置
       location ~ .php$ {
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_index index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include fastcgi_params;
       }

       #禁止访问 .htxxx 文件
       location ~ /.ht {
           deny all;
       }

    }


}
添加新评论