location里面可以定义URL路径,当访问某个URL路径的时候转发到磁盘上某一个路径上面
如果不定义location,访问的话就是访问定义的root根目录下的文件
但是也可以针对特定的url来实现相应的磁盘路径,可以用alias
就是把这个url起个别名,让这个url指向另外的
当访问bbs,其实是访问web/forum下的文件
如果是root,就会有所区别
修改配置文件
创建文件启动服务
改成root对比一下
就是bbs下的文件
不指定文件名,就默认index.html
错误页面,访问不存在的页面就会自动跳转
这就是nginx是404错误
京东报错的页面就比较好看
这个页面是360浏览器生成的页面,如果访问网站不存在的情况下,就会出现,劫持原本的页面
可以不用系统 的404错误页面
建立一个404页面
查看是否起作用
错误页面放错位置了
这个就是我们自己定义的
但是这样定义,像360这样的浏览器就会劫持你
把a。conf设置成默认,因为一直做实验
原来的c.com就不需要是默认的了
现在通过ip地址访问就是a.com网站
为了避免被劫持有一个好方法,报错的时候重定向到200响应码
返回200的响应码,但是看到的页面还是404页面
京东也怕被劫持
现在再去访问,就是200了
响应码变成200,页面还是404
360做流氓软件出身,3721插件卖给雅虎了,一下发了,后来做了安全公司
try_files url 当去访问具体路径的时候,如果找不到内容了,(找一个内容的时候,要按照什么顺序来寻找数据)
当访问images下的页面的时候先去找这个目录下对应的$uri (变量)
当去访问一个网站的时候,比如images/a.jpg
你要访问的uri是什么就进到具体目录里寻找数据
找的时候先去找images下面有没有a.jpg,如果有就把页面返回给用户,没有就找default.gif
如果找不到这个uri,就去找这个uri下的index文件
如果再访问不了,就访问uri.html,返回一个404的错误
最后一个参数是必须存在的
复制一个图片,正常访问在images下
正常访问什么就返回什么
访问uri就返回什么uri,没有就用默认的jpg返回
响应码是200,实际上根本没有这个文件
也可以直接返回一个404
现在就对了
默认系统应该已经支持长连接,keepalive_timeout
telnet测试一下长连接
没有断开就说明是长连接,正常是已经断开了、
主页面在data下
说明默认就是长连接,长连接默认是75秒断开,一般75秒偏长,但是结合业务
链接多少次的时候才断开,默认100
达到多少个请求断开
可以对浏览器类型禁止长连接
向客户端发送请求的超时时长
一般用get命令,请求报文头部有三部分首部行,第二行是首部字段 ,第三个就是body
**但是如果是get方法,body一般是没有数据的
put,post(提交)可能body里面有数据
**
把body放到缓冲区中,默认为16k,当这个16k超过一定大小,就放到磁盘路径里面
(传附件本来就要上传到服务器的磁盘里,为何把缓存放到磁盘的一个路径下呢,
如果磁盘上存放的内容很多的话,就要从这个路径一点点地找,
数据存放在磁盘上,就需要通过文件系统一遍一遍地找,通过节点表,性能还是比较低下的,
、
如何来提高这个速度
**把数据做哈希运算,哈希运算得到的内容就是一个哈希值,比如sha1sum
1,2,2
比如就是最后取1个值
最后2,3位取 2
最后4,5位就取2 **
12,就会建立文件夹叫89
利用哈希值来组成数据,将来时以d结尾的都放在d目录下
16进制就是0-f,16*16=256字符
相当于分到了这么多的目录组合里去
光文件夹就100万多
一亿个文件放在100万文件加里,每个文件夹才放100个
如果一个目录放1亿那就需要等很久
git什么的也是这种思想,因为用这种方式存放数据,系统搜索磁盘数据,相对效率较高
达到多大放磁盘里
1用一个字符就用0-f
2就用两个字符代替
最多可以达到100万的文件夹
一级文件夹有16个
二级每个文件夹都有=16256个
三级每个文件夹16256*256
只要跳30个文件,可以把一亿个文件轻松找到,效率高
缓存数据也是一样的