在阿里云服务器上安装了一个Nginx 做了如下的配置
location /foo {
default_type application/json;
return 200 '{"hello":"world"}';
}
不指定Host请求头可以正常访问
➜ ~ curl 'http://114.55.176.xxx/foo'
{"hello":"world"}%
随意指定了一个Host请求头 返回如下
➜ ~ curl 'http://114.55.176.xxx/foo' -H 'Host: foo.com'
<html>
<head>
<meta http-equiv="Content-Type" content="textml;charset=UTF-8" />
<style>body{background-color:#FFFFFF}</style>
<title>TestPage184</title>
<script language="javascript" type="text/javascript">
window.onload = function () {
document.getElementById("mainFrame").src= "http://batit.aliyun.com/alww.html";
}
</script>
</head>
<body>
<iframe style="width:860px; height:500px;position:absolute;margin-left:-430px;margin-top:-250px;top:50%;left:50%;" id="mainFrame" src="" frameborder="0" scrolling="no"></iframe>
</body>
</html>
原因是:
主要原因还是指定的host没有在阿里云备案,访问被拦截
那为什么Nginx改成监听81端口后 就不会被拦截了呢?
➜ ~ curl 'http://114.55.176.210:81/foo' -H 'Host: foo.com'
{"hello":"world"}%
以及只不过是Host请求头而已 可以任意指定啊(如httpclient调用第三方接口需要指定某一host请求头 这种情况下你也不能给别人的域名备案啊) 又不是直接访问该域名为什么也要拦截呢?
或者能不能在控制台中取消拦截功能呢?