别出心裁:
实现域名到端口的映射
问题的提出
:
很多软件都自带一个
web
服务器
,
例如
alfresco,
它自带
tomcat,
启动以后访问
http://
服务器
IP:8080/alfresco
就可以访问主页
对于生产环境下
,
我们的一般使用域名访问
,
所以访问的形式就变为
http://
服务器域名
:8080/alfresco
作为用户来讲
,
这个
URL
地址包含了域名
,
端口
,
目录
,
是相当难以记忆的
.
我们知道域名系统是基于
IP
的地址映射系统
,
它的出现就是为了解决
ip
地址难以记忆的问题
,
而一般的
web
服务器都支持每个域名对应一个网站
(
也就是服务器上的一个网站目录
).
在
apache
的配置里面这被称之为基于名称的虚拟主机
.
现在问题来了
,
我现在给
alfresco
专门申请了一个域名
cms.test.com,
希望实现的的是访问
[url]http://cms.test.com[/url]
看到的就是
alfresco
的主页
.
一般域名对应的是
ip,
如何对应到端口
,
甚至对应到某个网页
.
在这种情况下
,
以系统管理的知识
,
至多实现访问
[url]http://cms.test.com:8080[/url]
就到了
alfresco
主页
.
讨厌的端口始终去不掉
.
而身边如果有位
html
开发人员的话
,
几条语句就可以搞定了
.
实现方法如下
在
apache
里面
(
这个
apache
要求是正在监听
80
端口的那个
),
为
cms.test.com
这个域名设置一个虚拟主机
,
内容大致如下
:
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName cms.test.com
DirectoryIndex alfresco.html
</VirtualHost>
然后在
/var/www/html
目录下创建文件
alfresco.html,
给文件添加如下内容
<html>
<head>
<meta http-equiv="REFRESH" content="0; URL=http://cms.test.com:8080/alfresco/">
</head>
<body>
</body>
</html>
然后你访问
[url]http://cms.test.com[/url]
看看
,
大功告成
!
原理也十分简单
当访问
[url]http://cms.test.com[/url]
实际访问的就是
/var/www/html/alfresco.html
这个网页文件
,
这个文件的功能是自动重定向到
[url]http://cms.test.com:8080/alfresco/[/url]