zoukankan      html  css  js  c++  java
  • Nginx学习笔记(九) 配置文件详细说明

    配置文件详细说明

      工作了几个月要开始做一些后台开发,免不了接触nginx,以前一般只是简单的使用,更多的分析内部模块的具体实现,为了部署需要进一步掌握配置方法。

    全局配置信息

    #nginx worker进程运行用户以及用户组 
    user nobody nobody;

    #nginx worker数量 worker_processes
    4;

    #全局错误日志文件,日志输出级别有debug、info、notice、warn、error、crit(类似于Python中的logging) error_log logs
    /error.log notice;

    #指定主进程id的存储文件位置 pid logs
    /nginx.pid;

    #指定一个nginx进程可以打开的最多文件描述符数目 worker_rlimit_nofile
    65535;

    #设定nginx的工作模式及连接数上限 events{ use epoll; #linux 服务器的优点所在 worker_connections
    65536;#设定worker的最大连接数 }


      worker_rlimit_nofile:
    理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

      worker_connetions:每个工作进程允许最大的同时连接数(那么,这里是不是应该小于worker_rlimit_nofile)

      (nginx最大的连接数:Maxclient = work_processes * worker_connections)

    虚拟主机配置

    server {
        listen          80;
        server_name     domain.com *.domain.com;
        return          301 $scheme://www.domain.com$request_uri;
     }
     
    server {
        listen          80;
        server_name     www.domain.com;
     
        index           index.html;
        root            /home/domain.com;
    }

      在上面的配置信息中,server代表虚拟主机,而server_name用来设定虚拟主机匹配的域名,从而可以更具不同的域名来处理不同的请求内容,即监听端口listen是相同的~

    •   在第一个server中,该server只会匹配domain.com以及其子域名下的请求;
    •   在第二个server中,只会匹配www.domain.com的域名请求;
    server {
        listen          80 default_server;
     
        index           index.html;
        root            /var/www/default;
    }

      Nginx 的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 Nginx 就会将请求送到指定了 default_server 的 节点来处理,如果没有指定为 default_server 的话,就跑到 localhost 的节点,如果没有 localhost 的节点,那只好 404 了。

    http配置

    http {
    #设定mime类型 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 65; #gzip on;     
    #虚拟主机的配置 server {
    #监听端口 listen
    80;
    #域名可以有多个,用空格隔开 server_name localhost; #charset utf-8
    ;#默认编码 #access_log logs/host.access.log main; location / { root html; index index.html index.htm;

    #设置访问网段
    allow 192.168.1.0/24;
    deny all; } #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; } }
  • 相关阅读:
    php 删除文件夹下的所有文件
    IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性 处理办法
    Tomcat/weblogic session失效时间的几种设置方法
    truncate与delete的区别
    oninput,onpropertychange,onchange的用法和区别
    HttpSessionBindingListener和HttpSessionAttributeListener区别
    insert table 和create table as 区别
    慎用create table as select,一定要注意默认值的问题
    mysql in与or效率比较
    值域范围
  • 原文地址:https://www.cnblogs.com/coder2012/p/4072387.html
Copyright © 2011-2022 走看看