# 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的转发地址。
- 简介
- php
- php基础
- php常用数组函数
- php常用字符串函数
- php魔术方法
- php高阶
- swoole
- php优化
- workerman
- PHP底层运行机制和原理
- php框架
- laravel
- 前端
- react
- 爬虫
- Scrapy
- Linux
- IO复用
- nginx
- nginx进程工作原理
- nginx配置
- 正向代理反向代理
- UPSTREAM
- SERVER
- HTTPS
- queue
- kafka
- redis
- DB
- mysql
- 存储引擎
- 索引
- 锁
- 触发器
- 分库分表
- 三范式
- 负载均衡
- 事务
- EXPLAN
- mysql死锁
- mysql索引覆盖与回表
- mysql聚簇索引与非聚簇索引
- NoSql
- memcache
- redis
- mongo
- 网络协议
- tcp与udp
- https与http
- 架构
- LNMP架构下HTTP请求的调用次序
- 数据结构&算法
- 基础数据结构
- Linked List
- array
- stack
- queue
- tree
- hash
- heap
- 常见算法
- 排序算法
- 查找算法
- 其他
- php的一些坑
- 常问面试题
- 技术面试最后反问面试官的话
- hr
- redis缓存击穿、穿透、雪崩
- 面试中回答的不好的问题
- web攻击防范