httpd:MPM
prefork,worker,event
prefork:
主进程生成多个子进程,每个子进程处理一个请求
worker:
主进程生成多个子进程,每个子进程生成多个线程,每个线程响应一个请求
event:
主进程生成多个线程,每个线程响应多个请求

server_name NAME [...];
后面可以跟多个主机名,名称还可以使用正则表达是(~)或通配符

Nginx server_name匹配顺序(匹配优先级)
    1、先做精确匹配检查:
    2、左侧通配符匹配检查:*.liheng1815.xyz
    3、右侧通配符匹配检查:mail.*
    4、正则表达式匹配检查:如~^.*\.liheng1815\.xyz$
    5、default_server        如果没有设置default server,则由上往下匹配第一个server

    server{
        server_name www.liheng1815.xyz;
    }
    server{
        server_name *.liheng1815.xyz;
    }
    server {
        server_name www.*;
    }

location [= | ~ | ~* | ^~] uri {...}
功能:允许根据用户请求的URI来匹配定义的各location。匹配到时,此请求将被相应的location匹配块中的配置所处理,例如做访问控制等功能

=:精确匹配检查
~:正则表达式模式匹配检查,区分字符大小写
~*:正则表达式模式匹配检查,不区分字符大小写
^~:URL的前半部分匹配,不支持正则表达式

匹配有优先级:
    精确匹配(=)、^~、~、~*、不带任何符号的location

server {
    listen 80;
    server_name www.liheng1815.xyz;
    location / {
        root "/vhosts/web1";
    }
    location /images {
        root "/vhosts/images";
    }
    location ~* \.php$ {
        ...;
        ...;
    }
}

rewrite regex replacement flag;
例如:rewrite ^/images/(.*.jpg)$ /imgs/$1 break;
http://www.liheng1815.xyz/images/a/b/c/1.jpg -->/imgs/a/b/c/1.jpg

flag:
last:此rewrite规则重写完成后,就不再被后面的rewrite规则进行处理,而是有User Agent重新对重写的URL再一次发起请求,并从头执行类似的过程。
break:一旦此rewrite规则重写完成后,直接终止重写。
redirect:以302响应码(临时重定向)返回新的URL。
permanent:以302响应码(永久重定向)返回新的URL。

开启gzip压缩:
gzip on;
gzip_min_length 1;
gzip_comp_level 2;
gzip_type text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

设置允许列出目录结构(作为一个下载站点)
autoindex on;

限制网站访问速度
set $limit_rate 1K;

反向代理配置

http段添加如下一行:
    proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10M max_size=10g inactive=60m use_temp_path=off;   #配置反向代理缓存    
定义上游服务器
upstream website {
    server 127.0.0.1:8080;
}
server {
    server_name www.liheng1815.xyz;
    listen 80;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxt_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #配置缓存
        proxy_cache my_cache;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 302 1d;
        #反向代理
        proxy_pass http://website
    }
}

server {
    server_name loaclhost;
    listen 127.0.0.1:8080;

    location / {
        alias www/;
        index index.html index.php index.htm;
    }
}

防盗链配置
Syntax: valid_referers none | blocked | server_names | string ...;
可以配置在server与location段
通过valid_referers指令和$invalid_referer变量,就可以通过rewrite功能来实现防盗链,有以下两种方法实现:
1、根据请求资源的资源类型
2、根据请求目录

    一、根据请求资源类型实现防盗链配置实例如下:
    ...
    server {
        ...
        listen 80;
        server_name www.liheng1815.xyz;
        root /var/html;
        location ~* .*\.(gif|jpg|png|flv|swf|rar|zip) {
            ...
            valid_referers none blocked server_names *.liheng1815.xyz;
            if ($invalid_referer) {
                rewrite ^/ http://www.test.com/1.jgp;
                #return 403;
            }
        }
    }
    server {
        listen 80;
        server_name www.test.com;
        root /var/web;
    }
    ...

    二、根据请求目录实现防盗链配置实例如下:
    ...
    server {
        ...
        listen 80;
        server_name www.liheng1815.xyz;
        location /images/ {
            ...
            root /server/images/;
            valid_referers none blocked server_names *.liheng1815.xyz;
            if ($invalid_referer) {
                rewrite ^/ http://www.test.com/1.jgp;
                #return 403;
            }
        }
    }
    server {
        listen 80;
        server_name www.test.com;
        root /var/web;
    }
    …

伪静态配置:php页面伪静态为html文件
location / {  
rewrite ^(.*)/equip(d+).html$  $1/index.php?m=content&c=index&a=lists&catid=$2 last;  
}