• nginx配置文件结构


    0 conf结构

    分三大部分:全局区/events/http。默认conf 如下

    1 全局区

    worker_processes  8;

    #设定工作进程数,一般等于core数就行。每个进程跑一个core。

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

    #整个nginx的error log是全局设定的(access.log可以按server设定),这里设定目录和日志等级。

    #稳定的线上环境,必然是info。其他两个量太大了。

    2 evsnts{}

    一般配置nginx连接特性

    worker_connections  51200;

    #每个工作进程的最大连接数

    3 http{}

    3.1 日志格式、标签、路径

    日志分为log_format和access_log两个参数,前者设定日志标签(main等)定义日志内容和字符串格式,后者设定日志路径和文件名,并采用的日志标签。

    在http下定义log_format,log_format是整个http的默认日志路径。在server里可以设定优先的日志路径,用于区分不同server的日志。

    如果出现以下报错,是因为需要先在http里将main标签启用。

    [root@webmaster nginx]# ./sbin/nginx -s reload
    nginx: [emerg] unknown log format "main" in /app/nginx-1.12.2/conf/nginx.conf:41
    

      

    3.2 server{}

    一个http{}里可以有多个server{}虚拟主机配置

    (这里使用基于域名的配置):设定监听端口为80,域名为jab.com,映射root地址为/data/jab.com,默认index文件为index.html。

    3.3 location

    不同的URL请求,根据匹配规则,做相应的处理

    语法规则:location [=|~|~*|^~] /uri/ { … }

    = 开头表示精确匹配
    ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
    ~ 开头表示区分大小写的正则匹配
    ~*  开头表示不区分大小写的正则匹配
    !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
    / 通用匹配,任何请求都会匹配到。
    比如:

      /home/  如果有/和/home/同时存在,则先匹配更长的/home/

     当访问ip/image/x.jpg。/首先会匹配到,然后去/data/jab.com/目录找image/x.jpg。而一般来说静态资源会另外放一个目录,~ image还会匹配一遍,然后停止匹配并把/的匹配覆盖掉。

     首先会进行精准匹配,匹配成功则停止-返回,然后普通匹配,对uri,记录最长的匹配结果返回,对正则,第一个匹配的返回。

    --conf--

    到目前为止的conf

    worker_processes  1;
    error_log logs/error.log debug;
    
    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;
    
        server {
            listen       80;
            server_name  jab.com;
    
            #charset koi8-r;
    
            access_log  logs/jab.com.log  main;
    
            location / {
                root   /data/jab.com/;
                index  index.html index.htm;
            }
    
            location ~ image {
                root   /data/jab.com/res/;
            }
        }
    }
    

      

  • 相关阅读:
    近两年项目回顾系列——velocity模板引擎
    求两个集合的交集和并集C#
    CI框架下JS/CSS文件路径的设置
    Apache下的 SSI 配置
    DOTA
    MySql 查询结果按照指定的顺序
    strtotime 方便获取前几天后几天
    CI框架的session失效原因
    正则解析多重循环模板
    PHP 多维数组按照指定的顺序进行排序
  • 原文地址:https://www.cnblogs.com/jabbok/p/9213554.html
Copyright © 2020-2023  润新知