# 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攻擊防范