例子:
以上一些配置为在该server下具有全局性,例如 root ,可在location中重新定义root
当我们想定义多个server监听同一个端口但访问的host不一样时,server_name就派上用场了。nginx会根据HTTP请求的header Host选择nginx配置文件里符合条件的server_name的server配置
匹配顺序如下
所以当我们监听的的端口只有一个server配置的时候,server_name 可以不填
两者作用差不多,区别在于最终映射的地址不同,例:
简单例子,匹配所有请求
一个正则匹配的例子:
一个反向代理的例子:
vue-router、react-router等路由框架要开启history模式可以选择的nginx配置的例子
location的匹配规则和顺序
还有一种特殊匹配类型 @url ,只用于nginx内部跳转,例:
例子:
有常用两种负载均衡支持调度算法,分别是 weight 和 ip_hash 。weight 模式下可以为每个 server 设置weight值,weight值越大,分配到的访问机率越高,ip_hash 为同一个ip的
分配同一个后端服务器,这样我们不用解决session共享问题。
例子:
mime type 和 文件扩展名的对应关系一般放在 mime.types 里,然后 用 include mime.types
mime.types作用:通过文件的扩展名设置了Content-Type,Nginx如果没找到对应文件的扩展名的话,就使用默认的Type,默认Type通用 default_type 定义,比如 default_type application/octet-stream
完整的 mime.types 配置: https://github.com/h5bp/server-configs-nginx/blob/master/mime.types
一个虚拟主机对一个文件配置,放到vhost文件夹下面,然后通过include指令包含进来,这样更便于维护和管理
配置:
参考:
http://tool.oschina.net/apidocs/apidoc?api=nginx-zh
https://www.jianshu.com/p/bed000e1830b
Content-Type属性指定请求和响应的 HTTP 内容类型。如果未指定 ContentType,默认响应的内容类型为 text/html ,默认请求的内容类型为 application/x-www-form-urlencoded 。Content-Type一般只存在于Post方法中,因为Get方法是不含“body”的,它的请求参数都会被编码到url后面,所以在Get方法中加Content-type是无用的。
在 nginx 中有个配置文件 mime.types ,主要是标示 Content-Type 的文件格式。
下面是几个 常见的 Content-Type :
application/x-www-form-urlencoded 是常用的表单发包方式,普通的表单提交,或者 js 发包,默认都是通过这种方式,数据被编码为key/value格式发送到服务器。
multipart/form-data 用在 发送文件的POST包 。
Multipart/form-data的请求头必须包含一个特殊的头信息 : Content-Type , 且其值也必须规定为multipart/form-data , 同时还需要规定一个 内容分割符 即 boundary 用于分割请求体中的多个POST的内容 , 如文件内容和文本内容自然需要分割开来 , 不然接收方就无法正常解析和还原这个文件了。
text/xml 微信用的是这种数据格式发送请求的。XML-RPC(XML Remote Procedure Call)是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。
application\json HTTP通信中并不存在所谓的json,而是将string转成json罢了,也就是,application/json可以将它理解为text/plain,普通字符串。
application\xml XML数据格式
MDN Content-Type
理解HTTP之Content-Type
四种常见的POST提交数据方式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)