一些网站通过IP无法访问,只能通过域名来访问,这点是怎么做到?主要是想知道这样做的好处和意义在哪里?
通过配置你的Web服务器就可以原理是这样:域名指向到IP地址,通过域名即可访问到指向的服务器,但是,Http服务端如Apache,Nginx等,可以通过配置将不同域名指向到服务器的不同路径下或者代理到不同的端口。因此,用IP访问虽然能访问到服务器,但是Http服务器并不能通过请求的域名分配请求的路径,只能只想到默认路径,而这时你只需要去掉默认的路径或者在默认的路径下的响应一个地址转向或者错误信息就可以了。
通过ip无法访问那是因为服务器软件(apache、nginx)没有为这个ip配置虚拟主机。 所以你没法直接用ip访问。用域名访问网站而不是用ip访问网站,是因为域名比较容易记忆。 并且通过域名的话可以做容灾和负载均衡。一个域名可以解析到多个ip。 而你如果用ip的话就定死了。。
一、可以配置多个server,第一个默认配置
官方文档中提供的方法:
If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests:
#禁止IP访问 server { listen 80 default; server_name _; return 444; }
这样就OK了
二、这样做的一般有这些好处
1、防止通过IP进行恶意攻击2、有时候多个域名解析到同一个ip3、不利于SEO优化
webserver可以根据你http请求头中的Host字段的值,来给你返回对应的页面。当你直接使用IP的时候webserver就不知道你要请求哪个页面了。好处和意义很简单,比如一个公网IP的80端口可以绑定任意多个域名。节省服务器和公网IP资源。
或许你去了解一下HTTP协议就能明白了。你想啊,一个服务器上是不是可以有上百个网站?你直接访问IP,服务器会知道你要访问哪个网站么?对于你说的有些可以访问,那也许是它独立使用一个服务器吧。如果是通过域名访问,DNS服务器就会帮你解析到对应的服务器,再由服务器将你的请求带到对应网站上。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(5)
通过配置你的Web服务器就可以
原理是这样:
域名指向到IP地址,通过域名即可访问到指向的服务器,
但是,Http服务端如Apache,Nginx等,可以通过配置将不同域名指向到服务器的不同路径下或者代理到不同的端口。
因此,用IP访问虽然能访问到服务器,但是Http服务器并不能通过请求的域名分配请求的路径,只能只想到默认路径,而这时你只需要去掉默认的路径或者在默认的路径下的响应一个地址转向或者错误信息就可以了。
通过ip无法访问那是因为服务器软件(apache、nginx)没有为这个ip配置虚拟主机。 所以你没法直接用ip访问。
用域名访问网站而不是用ip访问网站,是因为域名比较容易记忆。 并且通过域名的话可以做容灾和负载均衡。
一个域名可以解析到多个ip。 而你如果用ip的话就定死了。。
一、可以配置多个server,第一个默认配置
官方文档中提供的方法:
If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests:
这样就OK了
二、这样做的一般有这些好处
1、防止通过IP进行恶意攻击
2、有时候多个域名解析到同一个ip
3、不利于SEO优化
webserver可以根据你http请求头中的Host字段的值,来给你返回对应的页面。当你直接使用IP的时候webserver就不知道你要请求哪个页面了。好处和意义很简单,比如一个公网IP的80端口可以绑定任意多个域名。节省服务器和公网IP资源。
或许你去了解一下HTTP协议就能明白了。
你想啊,一个服务器上是不是可以有上百个网站?你直接访问IP,服务器会知道你要访问哪个网站么?
对于你说的有些可以访问,那也许是它独立使用一个服务器吧。
如果是通过域名访问,DNS服务器就会帮你解析到对应的服务器,再由服务器将你的请求带到对应网站上。