如何在Tomcat中设置只能通过URL访问,而不能通过IP访问?

xiaobaitu7788 2009-07-11 04:55:10
如何在Tomcat中设置只能通过URL访问,而不能通过IP访问?
...全文
1524 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
h--doctor 2009-07-13
  • 打赏
  • 举报
回复
学习!!
fys249931556 2009-07-12
  • 打赏
  • 举报
回复
如果你买虚拟主机的话,你放心好了。。即使你是独立的tomcat服务器,通过IP也访问不了你的站点。
b47248054 2009-07-12
  • 打赏
  • 举报
回复
tomcat/conf/server.xml
<标签是什么我忘了 defaulthost="www.example.com">

</标签是什么我忘了>
<host name="www.example.com">
........
</host>

<host name="www.example1.com">
........
</host>

<host name="www.example2.com">
........
</host>

这样配置,用ip不能访问。就只能通过域名来访问了
gao512008 2009-07-12
  • 打赏
  • 举报
回复
MARK
ArayChou 2009-07-12
  • 打赏
  • 举报
回复
10,17,18楼说的靠谱,关键字:基于域名的虚拟主机。
jeff2033333 2009-07-12
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 dinghun8leech 的回复:]
写个页面,里面塞上几句js脚本,判断一下url中是否有域名,没有就不给转,那么其他人通过外网ip+80也只能得到这张页面的提示:请直接使用域名访问。
我目前的情况是三四个域名同时解析到一个ip地址上,就用此法进行域名判断并转发。
80端口是dns解析后默认的通信端口,不可以关,8080端口倒是可以关的。
[/Quote]

光用js也太不安全了,碰上一个明白人直接就穿过去了,哪有js发挥作用的份?
越过越咸 2009-07-12
  • 打赏
  • 举报
回复
/tx
dinghun8leech 2009-07-12
  • 打赏
  • 举报
回复
写个页面,里面塞上几句js脚本,判断一下url中是否有域名,没有就不给转,那么其他人通过外网ip+80也只能得到这张页面的提示:请直接使用域名访问。
我目前的情况是三四个域名同时解析到一个ip地址上,就用此法进行域名判断并转发。
80端口是dns解析后默认的通信端口,不可以关,8080端口倒是可以关的。
ykpbdo 2009-07-12
  • 打赏
  • 举报
回复
除非远程访问
Sou2012 2009-07-12
  • 打赏
  • 举报
回复
帮顶!!
code_killer 2009-07-11
  • 打赏
  • 举报
回复

我猜想,楼主想要的就是一个基于域名的虚拟主机。
在tomcat里面配置一个虚拟主机(比如:www.example.com),只要这个虚拟主机不是默认主机就行了。
这样,如果用户在浏览器里面直接输入服务器的IP地址,访问的是tomcat的默认主机。
只有在浏览器里面输入虚拟主机的域名(www.example.com),才能访问到.
eric1028 2009-07-11
  • 打赏
  • 举报
回复
其实楼主的需求只是想限制不能通过IP访问。
这写一个Filter完全可以做到。
但想通过Tomcat设置来达到这个目的的话,就在tomcat的配置文件conf/server.xml里面的Host的name属性上去找答案吧。
eric1028 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tangyu477 的回复:]
这个 我来解答吧

IP有分为内网IP和外网IP
内网就是局域网,一般IP地址是192.168.*.*
你可以查看一下自己的IP是不是192.168.*.*
如果是的话,一般你访问自己TOMCAT你用的地址是 http:// localhost : 8080或http:// 127.0.0.1 : 8080
可以改成http:// 你的IP(192.168.*.*) : 8080
这个情况下 你所在网段必定有个交换机(路由)
外网的IP就是你的唯一对外IP,准确的说是你这个网段的唯一对外IP(也就是互联网访问你这个网…
[/Quote]

这里应该不是端口映射的问题。
因为通常对外的网站大家都是用80端口的。
eric1028 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaobaitu7788 的回复:]
比较大型的网站采用了负载均衡技术。从而使得不能直接采用IP访问网站。

例如:新浪,CSDN等网站。

其原理是根据HTTP协议中的HOST这项来决定的。当我们利用IP直接访问网站是HOST内容就为IP,
而用URL访问网站时,则HOST为URL地址。正是这一点我们才能限制直接利用IP访问网站。

我的问题是在Tomcat中哪里能设置这一功能。
[/Quote]

谁说负载均衡就不能使用IP访问?
做负载均衡通常是有一个负责分发请求的服务器,根据负载情况把请求转到不同的真正负责处理请求的服务器节点。

就是说,虽然后面有很多服务器节点,但对于用户来说,服务器只有一个,就是处理分发请求的那个前端机,不管使用那个前端机的域名还是它的IP都没有问题的。
tfish2014 2009-07-11
  • 打赏
  • 举报
回复
这个 我来解答吧

IP有分为内网IP和外网IP
内网就是局域网,一般IP地址是192.168.*.*
你可以查看一下自己的IP是不是192.168.*.*
如果是的话,一般你访问自己TOMCAT你用的地址是 http:// localhost : 8080或http:// 127.0.0.1 : 8080
可以改成http:// 你的IP(192.168.*.*) : 8080
这个情况下 你所在网段必定有个交换机(路由)
外网的IP就是你的唯一对外IP,准确的说是你这个网段的唯一对外IP(也就是互联网访问你这个网段的IP)
你们公用一个IP,外网IP也非常好查 http://www.ip138.com就可以了
但是你们这么多人公用一个外网IP怎么才能确定输入外网IP访问的是你的机器呢
需要在交换机上做一个映射才行,你访问的是8080端口 映射的也是8080端口,这个是端口映射
关于端口的映射就不在这里详细解释了(再详细些就网上找下资料吧)解释上面那么多了就可以了
访问方式http:// (外网IP ): 8080,其中这个IP是任何一个人都能访问的地址
还有种情况是你一个人一根网线 你的IP不是局域网段,那么就简单了 直接查外网IP 然后就输入外网IP就可以访问了 不用在做映射
Yedy2000 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 eric1028 的回复:]
我得说一声,这是完全可能的。

很多服务器都是那样,很多个域名解析出来的IP其实是同一个,但用不同域名进去,访问到的是不同的网站。
[/Quote]


学习了
eric1028 2009-07-11
  • 打赏
  • 举报
回复
关键是server.xml里面那个Host,可以看成是一个虚拟主机,每个虚拟主机可以用于服务不同域名,每个虚拟主机的根目录都可以映射到各自独立的webapps目录。
eric1028 2009-07-11
  • 打赏
  • 举报
回复
我得说一声,这是完全可能的。

很多服务器都是那样,很多个域名解析出来的IP其实是同一个,但用不同域名进去,访问到的是不同的网站。
qq9791541 2009-07-11
  • 打赏
  • 举报
回复
不可能的吧。。。dns自动转换成ip
Yedy2000 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaobaitu7788 的回复:]
引用 2 楼 Yedy2000 的回复:
不可能的。

域名管理系统——DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是:把域名转换成为网络可以识别的ip地址。首先,要知道互联网的网站都是一台一台服务器的形式存在的,但是我们怎么去到要访问的网站服务器呢?这就需要给每台服务器分配IP地址,互联网上的网站无穷多,我们不可能记住每个网站的IP地址,这就产生了方便记忆的域名管理系统DNS,他可以把我们输…
[/Quote]

是我理解错了。

既然你已经提到了负载均衡技术,那就找下吧。
加载更多回复(7)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧