设为首页 收藏本站
查看: 465|回复: 0

[经验分享] 使用apache重写,一个空间上放多个应用

[复制链接]

尚未签到

发表于 2017-1-10 06:33:34 | 显示全部楼层 |阅读模式
完全没必要为每个域名购买一个独立的主机帐户和IP地址。可以利用Apache的一些特性来完成在单一IP地址上配置多域名。

如果你是一个普通的小网站业主,那么经营网站的方式多半是采用与网络平台提供商共享主机帐户的方式。这是一种很典型的方式,共享帐户 会给你提供一个唯一的IP地址,一块有限的存储空间,以及有限的网络带宽,也准许你使用一些基本的访问命令。显然,这样的帐户权限不包 括超级用户访问权限,也不允许安装任何服务器程序。

其实这是个误区,以前每次当我需要建立新的网站,购买新的域名空间时,我都会从网络主机提供商那里买一个新的共享帐户。不用说,结果 自然是每年都要交一笔昂贵的网络费用。而且非常不划算,因为每个帐户所分得的存储空间和带宽都没有被充分利用。

为了控制不断上升的网络费用,我决定来做点研究,看看是否存在一种更经济的经营网站的方法。经过研究发现,完全不必要为每个域名都购 买单独的主机帐户和IP地址。用Apache的一个特性就可用实现将多个域名绑定在一个主机帐户和IP地址上,极大地减少了主机注册的开销。

step1:确保主机所用的网络服务器是Apache服务器

大多数网络主机提供商,如Apach非常稳定、能强大,且很容易配置。一般说来,如果主机提供商所使用的操作系统为UNIX,那么网站服务器一 般都是Apache服务器。可以发个电子邮件或打个电话,向主机提供商的相关部门确认一下服务器是否为Apache服务器。

下面的步骤将用到Apache服务器的两个特殊性质:

# 第一个特性是URL重置引擎,根据预先定义的规则集自动地生成URL请求。mod_rewrite引擎提供基于规则的实时转向URL请求功能。一般说 来,可用在编译时间激活它,当然也可以在运行时间内再激活它,就如DSO模块一样。

# Per-directory .htaccess文件,允许覆盖Apache服务器的缺省配置,通过special.htaccess文件来实现。

最好向主机提供商核查一下,看看上述Apache服务器的两个特性是否可用。因为下面的步骤要求这两个特性都是可用的。

step2:为每一个域名创建一个目录

在初始帐户目录的public_html/ 路径下,再创建以下子目录:

vhosts/site1
/site2
/site3

这里的site1,site2,和site3分别代表不同的域名。接下来,在每个路径中放入相应的WEB文件。

step3:应用重写规则

一旦配置好目录后,就可用在public_html/目录下创建一个名为.htaccess的文件,并把下面的程序写进这个文件。

RewriteEngine On

这行程序是用来激活Apache服务器的URL重写引擎的。接下来,要定义规则集,可参照下面的程序行:

RewriteCond %{HTTP_HOST} site1.com$ [NC]
RewriteCond %{REQUEST_URI} !^/vhosts/site1/.*$
RewriteRule ^(.*)$ /vhosts/site1/$1 [L]

RewriteCond %{HTTP_HOST} site2.com$ [NC]
RewriteCond %{REQUEST_URI} !^/vhosts/site2/.*$
RewriteRule ^(.*)$ /vhosts/site2/$1 [L]

后面的思想是简单而巧妙的。只要Apache一接收到从站点www.site1.com发出的请求,它就会自动地重写URL并且马上开始服务。提 供/vhosts/site1目录下的内容。www.site2.com的请求也是类似,将提供/vhosts/site2目录下的内容。由于重写操作发 生在后台服务器,很多 用户可能根本没察觉到它的发生。

step4:从网络主机服务提供商处购买域指针

最后一步就是要求主机供应商在其DNS域文件里发布你的各个域名。这里的“域指针”本质上就是一个DNS入口,将你的多个不同的域名绑定到 你的主帐户的IP地址上。大多数主机服务提供商都有提供这项服务,一次性付费方式,可以很方便地买到。

上述操作都完成后,一旦有客户端向某个域空间发出请求,域名服务器就会将你的主帐户及IP地址反馈给它。若客户端尝试连接到这个IP地址 ,Apache服务器就会按照前面定义的重写规则来检查这个被请求的域名是否正确,若正确就从相应的主目录中调出被请求的页面。

如果企业一个小型的、访问量不是很大的网站,上述技术将会是一个可节省网络运营开销简单且有效的好方法。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326143-1-1.html 上篇帖子: APACHE自带的测试工具AB进行压力测试 下篇帖子: 表达式语言引擎:Apache Commons JEXL 2.1 发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表