| 1.首先选择所有的字符串完全匹配的server_name。(完全匹配) |
| 2.选择通配符在前面的server_name,如.egonlin.com blog.egonlin.com |
| 3.选择通配符在后面的server_name,如egonlin. egonlin.com egonlin.cn |
| 4.最后选择使用正则表达式匹配的server_name |
| 5.如果全部都没有匹配到,那么将选择在listen配置项后加入[default_server]的server块 |
| 6.如果没写,那么就找到匹配listen端口的第一个Server块的配置文件 |
| 当用户通过访问IP或者未知域名访问你得网站的时候,你希望禁止显示任何有效内容,可以给他返回500,目前国内很多机房都要求网站关闭空主机头,防止未备案的域名指向过来造成麻烦 |
| [root@lb01 conf.d] |
| server { |
| listen 80 default_server; |
| server_name _; |
| return 500; |
| } |
| nginx的try_file路径匹配,Nginx会按顺序检查文件及目录是否存在(根据 root 和 alias 指令设置的参数构造完整的文件路径),并用找到的第一个文件提供服务。在元素名后面添加斜杠 / 表示这个是目录。如果文件和目录都不存在,Nginx会执行内部重定向,跳转到命令的最后一个 uri 参数定义的 URI 中。 |
| [root@web01 conf.d] |
| server { |
| listen 80; |
| server_name linux.try.com; |
| |
| location / { |
| root /code; |
| index index.html; |
| } |
| } |
| |
| [root@web01 conf.d] |
| [root@web01 conf.d] |
| [root@web01 conf.d] |
| server { |
| listen 80; |
| server_name linux.try.com; |
| |
| location / { |
| root /code; |
| try_files $uri /1.jpg; |
| } |
| } |
| |
| |
| 1.访问域名时 linux.try.com,返回的结果是 1.jpg |
| 由于请求的是域名,后面没有 uri,那么 $uri 匹配到的就是 "空",匹配不到内容的情况下,返回 1.jpg |
| |
| 2.访问域名 linux.try.com/index.html,返回的结果是 index.html |
| 由于请求的是linux.try.com/index.html,$uri 匹配到的是 index.html,就返回相应内容 |
| [root@web01 conf.d] |
| server { |
| listen 80; |
| server_name linux.try.com; |
| |
| location / { |
| root /code; |
| try_files $uri $uri/ /1.jpg; |
| } |
| } |
| |
| |
| 1.访问域名 linux.try.com,返回的结果是 index.html |
| 由于请求的是域名,后面没有 uri,那么 $uri 匹配到的就是 "空",$uri 匹配不到内容的情况下,匹配 $uri/,匹配到的是 "空/",/ 配置的是 /code,那么就回去请求code目录下的 index.html |
| [root@lb01 conf.d] |
| server { |
| listen 80; |
| server_name linux.try.com; |
| root /code; |
| |
| location / { |
| try_files $uri $uri/ @java; |
| } |
| |
| location @java { |
| proxy_pass http://172.16.1.8:8080; |
| } |
| } |
| [root@web01 ~] |
| [root@web01 ~] |
| [root@web01 webapps] |
| [root@web01 webapps] |
| 1.code目录下游index.html的情况,访问域名正常显示 index.html |
| 2.把code目录改名,访问域名,返回的时tomcat下面配置的页面 |