诸如10.10.0.1:8080这样的网址如何采用域名访问,这样的方式显示在地址栏中,内网无所谓,要是到了公网就给人一种很low的感觉。后来想到使用各大厂的云解析DNS,目前只有一个万网的有提供类似的服务,他们称为【隐性URL】,说白了,就是做一个特殊的转发,在访问www.abc.com的时候显示www.def.com的内容,地址栏仍然显示www.abc.com,这种支持显式端口号网站,让地址栏没有那么“难看”。大部分提供商要想做域名与网站映射的话还是要填入一个ipv4地址的。现在全球ipv4地址资源即将用尽,自己又没有那么多money买云主机,而且这样也比较浪费资源,一个服务器只跑一个网站,太浪费了。后来网上查资料的时候发现了Apache(自己比较常用的一个网站服务器)有这样的功能。下面先介绍效果和怎么做,后面在简单说一下它的原理。服务器租用。梦飞科技。
我们要实现的效果是:
地址栏输入 blog.xxx.com , 实际转向的是xxx.xxx.xxx.xxx:xxxx一个用纯ip以及端口号表示的网站。国内外服务器租用。
这里所指向的实际网站并不与www.xxx.com域名存放于同一服务器上,即跨域了,非跨域的按照如此配置也是可以的。
1、去云解析DNS服务商添加子域名解析
这里要选择A记录,值为www.xxx.com所在的服务器ip,并不是xxx.xxx.xxx.xxx:xxxx所在的服务器ip!
2、开启Apache的相关模块
a、LoadModule proxy_module modules/mod_proxy.soLoadModule
b、proxy_connect_modulemodules/mod_proxy_connect.soLoadModule
c、proxy_http_modulemodules/mod_proxy_http.so
3、在httpd.conf最后添加如下内容
a、ServerName填写子域名blog.xxx.com ServerName服务器名
b、ServerAlias同样填写子域名blog.xxx.xom ServerAlias服务器别名
c、 ProxyPreserveHost On 开启代理保存主机(我直译的)
d、ProxyRequestes Off 关闭代理请求(我直译的)
e、ProxyPass / http://xxx.xxx.xxx.xxx:xxxx/ 代理通过条件 斜杠部分也要填入
注:blog.xxx.com下的所有请求转交给http://xxx.xxx.xxx.xxx:xxxx处理,即ProxyPass的前者转交后者,前面的/就表示blog.xxx.com/,如果为/proxy,等价于blog.xxx.com/proxy
f、ProxyPassReserve / http://xxx.xxx.xxx.xxx:xxxx/反向代理通过条件 斜杠部分也要填入
4、#NameVirtualHost *:80前的#去掉,没有的话填上这一句。
5、重启Apache服务
最终效果(Apache与Nginx属于不同的网站服务器哦,跨域了~)
原理简述:这其实就是DNS的逐级解析再转发的一个过程。我们输入blog.xxx.xom的时候,又因为云解析DNS解析到一个固定的IP地址,然后,云解析DNS的功能就结束了,剩下的就是Apache服务器的事情了。我们知道,开启Apache的虚拟主机后,就可以同时跑多个网站了,我们让这些虚拟主机全部监听80端口,这样,当收到请求后,Apache会根据我们设定的子域名选择正确的虚拟主机,再根据配置进行转发。梦飞科技。其中的ProxyPass的第一个参数和ProxyPassReserve的第一个参数都是过滤规则。
(责任编辑:joker) 部分网站内容及图片来源于网络,如有侵权或违规内容请联系管理员删除!