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/;
        }
    }
}

  

 

posted @ 2018-06-22 15:07  jabbok  阅读(212)  评论(0编辑  收藏  举报