这是我参与18月更文挑战的第28天,活动详情查看:2021最后一次更文挑战
接着昨天分享得ngnix,今天想继续分享以下每个模块中一些常用的参数
1. http块
- include 指令 我们看config里面默认是 include mime.types; 文件扩展名与文件类型映射表 我们可以看到这个默认的就是config文件目录下的mime.types 其中的一些部分截图
-
default_type 定义响应的默认MIME类型
-
sendfile 设置为on可以启用Linux上的sendfile系统调用来发送文件,开启sendfile配置来提高文件的传输速率(sendfile是Linux 2.0+ 以后的推出的一个系统调用)
-
keepalive_timeout 指定 KeepAlive 的超时时间,指定每个 TCP 连接最多可以保持多长时间(默认为75秒)因为我们知道http是无状态协议,在http1.0中 tcp连接好就会马上断开,例如我加载一个页面,页面上有5张图片 我加载这5张图片的资源我就要去建立5次tcp连接 这显示会很浪费资源 所以就有一个保持连接状态 那这样也提高了效率
-
gzip on; 开启gzip
-
gzip_types 需要压缩哪些响应类型的资源,多个空格隔开 例如: gzip_types text/plain application/javascript
-
gzip_min_length 低于X的资源不压缩 例如:gzip_min_length 10k;
-
gzip_disable 配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低>版本不支持) 例如:gzip_disable "MSIE [1-6].";
-
gzip_vary on; 是否添加“Vary: Accept-Encoding”响应头
2. server模块
一个服务下可以有多个location 用来表示不同的反向代理
-
listen xx # 监听端口号
-
server_name localhost; #主机名,默认是本主机
3.location
- location 匹配顺序
location = 精准匹配
location ^~ 带参前缀匹配
location ~ 正则匹配(区分大小写)
location ~* 正则匹配(不区分大小写)
location /a 普通前缀匹配
location / # 任何没有匹配成功的,都会匹配这里处理
-
root 指定文件路径
-
try_files uri/ /index.html;会到硬盘里尝试找这个文件.只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中
-
index index.html;
-
add_header Access-Control-Allow-Methods *; 指定允许跨域的方法,代表所有
-
add_header Access-Control-Max-Age 3600; 预检命令的缓存,如果不缓存每次会发送两次请求
-
add_header Access-Control-Allow-Credentials true; 带cookie请求需要加上这个字段,并设置为true
-
add_header Access-Control-Allow-Origin http_origin; 表示允许这个域跨域调用(客户端发送请求的域名和端口) $http_origin动态获取请求客户端请求的域 不用的原因是带cookie的请求不支持号
-
add_header Access-Control-Allow-Headers $http_access_control_request_headers; 表示请求头的字段 动态获取