1、 /dev/stdout 标准输出 作用:日志输出docker日志中,而不输入到具体的文件中 /dev/stdin 标准输入 /dev/stderr 标准错误 /dev/null 不输入输出 2、 try_files $uri $uri/ /index.html =404; 根据查询文件的路径查询文件,假如找不到则404默认是index.html文件 参数详细解释: try_files 查找文件 $uri 查询的url $uri/ 找到具体的url及其下一层的具体的文件 /index.html =404 找不到文件,则直接返回index.html文件,假如 index.html也没有找到,则直接返回状态码404。
关键点1按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理
关键点2查找路径是按照给定的root或alias为根路径来查找的
关键点3如果给出的file都没有匹配到,则重新请求最后一个参数给定的uri,就是新的location匹配
关键点4如果是格式2,如果最后一个参数是 = 404 ,若给出的file都没有匹配到,则最后返回404的响应码
server { listen 80; listen 443; server_name www.test.cn ; access_log /dev/stdout log; error_log /dev/stdout; location / { root /www; index index.html index.htm; try_files $uri $uri/ @default; //这样写就不会在找不到路径的时候默认加载index.html, //而是直接会返回状态4040 } location @default { return 404; } }3、 default_server指令定义默认的server出处理一些没有成功匹配server_name的请求,如果没有显示定义,则会选取第一个定义的server作为default_server。比如当你访问的地址为 ip 的时候,这时候指定的server_name为域名肯定是不匹配的,设置上default_server就可以直接走这个了。
