ngnix部分配置参数内容

86 阅读2分钟

这是我参与18月更文挑战的第28天,活动详情查看:2021最后一次更文挑战

接着昨天分享得ngnix,今天想继续分享以下每个模块中一些常用的参数

1. http块

  • include 指令 我们看config里面默认是 include mime.types; 文件扩展名与文件类型映射表 我们可以看到这个默认的就是config文件目录下的mime.types 其中的一些部分截图

image.png

  • 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 uriuri 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; 表示请求头的字段 动态获取