• Nginx详解(二) Nginx 配置文件详解


    [root@LFS ~]# vim /usr/local/nginx/etc/nginx.conf

    #user nobody;
    worker_processes 1;

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #pid logs/nginx.pid;


    events {
    worker_connections 1024;
    }


    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"';

    #access_log logs/access.log main;

    sendfile on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout 65;

    #gzip on;

    server {
    listen 80;
    server_name localhost;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    root html;
    index index.html index.htm;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    # proxy_pass http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    # root html;
    # fastcgi_pass 127.0.0.1:9000;
    # fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    # include fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /.ht {
    # deny all;
    #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;

    # location / {
    # root html;
    # index index.html index.htm;
    # }
    #}


    # HTTPS server
    #
    #server {
    # listen 443 ssl;
    # server_name localhost;

    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;

    # ssl_session_cache shared:SSL:1m;
    # ssl_session_timeout 5m;

    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;

    # location / {
    # root html;
    # index index.html index.htm;
    # }
    #}

    }

    Nginx配置文件总体结构如下:

    main(全局设置)
    server(主机设置)
    upstream (负载均衡服务器设置)
    location (URL匹配特定的设置)
    main 块设置的指令将影响其他所有设置
    server 块的指令主要用于指定主机和端口
    upstream指令主要用于负载均衡,设置一系列后端的服务器
    location 块主要用于匹配网页位置
    nginx全局配置说明
     
    main(全局设置)
    server(主机设置)
    upstream (负载均衡服务器设置)
    location (URL匹配特定的设置)
    main 块设置的指令将影响其他所有设置
    server 块的指令主要用于指定主机和端口
    upstream指令主要用于负载均衡,设置一系列后端的服务器
    location 块主要用于匹配网页位置
     
    每个配置选项的含义解释如下:
     
    user是个主模块指令,指定nginx worker进程运行用户以及用户组,默认由nobody账号执行
    worker_process 是个主模块指令,指定了nginx要开启的进程数,每个nginx进程平均耗费10-12M内存,一般建议设置为auto
    error_log 是个主模块指令,用来定义全局错误日志文件
    pid是个主模块指令,用来指定进程Pid的存储文件位置
     
    events配置说明
     
    events事件指令是设定nginx的工作模式及连接数上限
    use 是个事件模块指令,用来指定nginx的工作模式,nginx的支持的工作模式有select 、poll、kqueue、epool、rtsig和/dev/poll
    而kqueue用在freebsd系统中,在linux中,epoll工作模式是首选。
    work_connections 是个事件指令,用来定义nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_process和work_connections来决定。
     
    HTTP配置说明
     
    include是个主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。
    default_type属于HTTP模块指令,这里设置默认类型为二进制流。
    client_max_body_size 用来设置允许客户端请求最大的单个文件字节数
    clinet_header_buffer_size 用来指定来自客户端请求头的headerbuffer大小
    keepalive_timeout 设置客户端连接保持活动的超时时间,在这个时间之后,服务器会关闭该连接
     
    HttpGzip模块配置
     
    该模块支持在线实时压缩输出数据流
     
    gzip 用来设置开启或者关闭gzip模块 gzip on 表示开启gzip压缩,实时压缩输出数据流
    gzip_min_length 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Lenth中获取,默认值是0
    gzip_buffers 表示申请4个单位16K的内存作为压缩结果流缓存。
    gzip_http_version 用来设置识别HTTP协议版本,默认是1.1
    gzip_comp_level 用来指定GZIP压缩比
    gzip_types 用来指定压缩类型,无论是否指定,"text/html"类型总是被压缩的。
     
    负载均衡配置
     
    upstream 是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡
    nginx的负载均衡模块目前支持4种调度算法
     
    轮询            每个请求按照时间顺序逐一分配到不同的后端服务器
    weight         指定轮询权值,weight值越大,分配到的访问几率越高,权值越高 
    ip_hash       每个请求按访问的IP的hash结果分配,这样来自同一个IP的访问客户固定访问一个后端服务器,有效解决了动态网页存在的session共享问题
    fair             比上面两个更加智能的负载均衡算法,此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。响应时间短的优先分配。
    url_hash    按照访问的url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进行一步提高后端缓存服务器的效率。
     
    后端服务器的状态:
    down :   表示当前的server暂时不参与负载均衡
    backup :预留的备份机器。
    max_fails: 语序请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream模块定义错误。
    fail_timeout :在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
     
    location URL匹配配置
     
    URL地址匹配是进行nginx配置中最灵活的部分,location支持正则表达式匹配,也可以支持条件判断匹配。用户可以通过location指令实现nginx对动、静态网页进行过滤处理。使用location URL匹配配置还可以实现反向代理,用来实现PHP动态解析或者负载均衡。
  • 相关阅读:
    bat脚本运行py文件失败(一闪而过)
    python 将日期戳(五位数时间)转换为标准时间
    Pandas 如何通过获取双(多)重索引获取指定行DataFrame数据
    Pandas 横向合并DataFrame数据
    Pandas 删除指定列中为NaN的行
    git 解决push报错:[rejected] master -> master (fetch first) error: failed to push some refs to
    pandas删除包含指定内容的行
    python项目环境的导出、导入
    pandas 修改列名
    Javascript 异步编程的4种方法
  • 原文地址:https://www.cnblogs.com/networking/p/13637583.html
Copyright © 2020-2023  润新知