# server ``` server { listen 80; root /home/git/www/; server_name xstudio.me yueqian.sinaapp.com; access_log /home/git/logs/access_log main; error_log /home/git/logs/error_log error; if ($uri !~ "^/(?:crossdomain\.xml|favicon\.ico|static/.*|robots\.txt)$") { rewrite ".*" /index.php last; } location ~* ^.+\.(jpg|jpeg|gif|png|bmp|css|js)$ { access_log off; expires 1d; break; } location ~ \.php$ { set $script_uri ""; if ( $request_uri ~* "([^?]*)?" ) { set $script_uri $1; } fastcgi_param SCRIPT_URL $script_uri; fastcgi_pass 127.0.0.1:9001; include fastcgi_params; } } ``` 配置项|含义 ---|--- listen | 监听的服务端口 后边加default_server指定默认虚拟主机。 server_name | 用来指定IP地址或者域名。 root | 表示在这整个server虚拟主机内,全部的root web根目录,区别于location下root。 ## 正则 * ~ 为区分大小写的匹配。 * ~* 不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。 * !~ 不匹配的。 * ^~ 标识符后面跟一个字符串,将在这个字符串匹配后停止进行正则表达式的匹配。 * = 表示精确的查找地址。 ## Rewrite * last :相当于Apache里德(L)标记,表示完成rewrite。 * break;本条规则匹配完成后,终止匹配,不再匹配后面的规则。 * redirect:返回302临时重定向。 * permanent:返回301永久重定向。 ## 文件缓存 expires 控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标 * time:可以使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定time值来设定。 * time值还控制”Cache-Control”的值: * 负数表示no-cache * 正数或零表示max-age=time ## fastcgi * fastcgi_param 设置fastcgi接收的参数,最终传递给PHP,SCRIPT_URL为url path。 * fastcgi_pass fastcgi的转发地址。