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

[经验分享] APACHE环境下同IP多域名虚拟主机的设置方案全攻略[ubuntu 12, linux]

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-5 09:48:08 | 显示全部楼层 |阅读模式
  近来由于工作的需要, 已经利用源代码编译的方式进行LAMP环境的配置工作(详见本博的另一篇文章), 现在所要做就是在该环境下安装一个商城系统(magento), 现有的条件是已经有了VPS,和域名解析也已经完成(关于域名解析还有一段曲折的经历,下文有述). 最简单的方案肯定是把这套商城系统的安装文件直接传到服务器的根目录下, 然后就可以直接访问这个域名安装了, 但是这个是最笨的方案, 毕竟买一个VPS的目的不只是为了装这一个系统, 还有为后续的其他CMS的安装打算, 为了实现这个目标并且考虑到将来服务器的扩展性, 最有效的方法就是在这个VPS上配置虚拟主机, 这样方便以后再加若干个网站或者论坛等CMS系统.   这样可以使VPS的使用性价比更高, 更科学. apache服务器设置虚拟主机的方法有以下几种:
  Apache实现基于IP地址的虚拟主机(每个站点拥有一个独立IP地址),使用这种虚拟主机的方案, 首先要在服务器上为每个虚拟主机单独设置一个IP地址, 这些IP地址可以通过增加多具网卡或者一个网卡上设置多个IP地址来完成, 有了多个IP地址,可以通过以下两个方案来完成:
1).为每个虚拟主机运行一份Apache, 采用这种方案, 每个apache程序都可以单独地运行, 因此各个虚拟主机之间互不影响. 设置这种虚拟主机时,只要为每一份apache设置一套配置文件就可以, 唯一要注意的是, 必须使用"Listen"语句, 强制每一个apache仅仅属于"自己"的IP地址上接收服务请求. 其优点是各个虚拟主机之间互不干扰, 安全性高.其缺点是占用系统资源多
2). 多个虚拟主机共享一个apache, 由于它是各虚拟主机共享一份配置文件, 所以各虚拟主机之间有一定的影响, 特别是执行CGI程序时, 可能会带来一些严重的安全问题. 其优点是占用系统资源比前一种方案少; 缺点是安全性低, 每个虚拟主机仍需要占用一个IP地址;
2 Apache实现基于主机名的虚拟主机服务(一个IP地址实现多个网站,也是本文的重点内容),使用这种虚拟主机, 是比较实用的实现方案, 因为它不需要很多的IP地址, 不需要什么特殊的软硬件支持, 现在的大多数浏览也支持这种虚拟主机的实现方法, 它实现的原理是根据客户端提交的HTTP头中的关于主机名的部分决定的. 通过这种方案, 可以实现多个虚拟主要享用同一个IP地址, 其优点是只要有一个IP地址即可以提供大量的虚拟主机服务; 缺点是安全性差, 维护这些主机时需要更改配置文件, 并且需要重新启动Apache服务才能起作用. 因为不太适合有大量正在运行虚拟主机服务的服务器使用;按照这个思路并结合我们的实际情况, 一个商城系统对应一个IP地址, 这样来看,就是属于一个同IP对应多域名的原则; 还有一点,就是不要在服务器上进行测试, 否则在测试过程中引起服务器宕机就会很麻烦的. 个人建议在本地配置一个与服务器完全一致的环境, 在本地测试通过后再按照同样的方案移植到服务器上去.这是最科学合理的方案, 具体来说, 你可以在本机上装一个虚拟机, 然后在虚拟机里进行搭配测试环境, 进行开发测试. 相信搞开发的对这个不陌生. 具体的VM的安装方法因为比较简单,所以从略, 在其上安装与服务器上一致的环境也是同样的方法, 所以不赘述.默认的本地测试环境和服务器的一致; 下面进入正题.
  具体到我的环境, Ubuntu的Apache的配置文件是 /etc/apache2/apache2.conf, 里面涵盖了所有的配置信息, Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如 httpd.conf等,则是通过Include指令包含进来。在apache2.conf中可以找到这些Include行,
  要配置apache环境,要找到配置文件httpd.conf, 它的位置是在/etc/apache2/目录下, 等你打开就会发现, 它原来是空文件, 那它的配置文件肯定是在另外的文件夹内, 通过查询得知, 它的配置文件是/etc/apache2/sites-available/default, 与之对应的是/etc/apache2/sites-enabled这个文件夹, 如果查询它的属性的话,会发现这个文件夹是一个链接类型的文件,如下图:
DSC0000.jpg
  注意看一下红线标注的l, 那个是链接文件的标志. 也就是说, 相关的配置是必须要在sites-available/这个里面进行配置, 然后链向sites-enabled这个文件夹, 然后才能被apache识别并执行. 这样的配置文件对调试调用都很方便,但是如果事先不知道,找起来也有点麻烦. 既然明白了其中的流程, 下面的工作就很好做了. 先进入sites-available, 然后利用cp命令拷贝default, 利用这个文件进行修改, 使之符合我们的要求:
DSC0001.jpg
  看一下里面的文件:
DSC0002.jpg
  需要注意的是, 你要在/var/www/test4文件夹内添加test4_access.log, test4_error.log这两个基本的文件(用作日志纪录),还有一个简单的index.html, index.php.之类的文件,其用途是报告你的配置正确与否;
  建立完成后保存, 然后下一步就是要链向sites-enabled这个文件夹了, 其命令是:
  ln -s sites-available/test4 sites-enabled/test4
  关于ln命令在本博里也有详述, 这样就完成了文件的对应关系. 其实为了安全起见,可以把sites-available/test4的文件直接拷贝到sites-enabled/test4. 这样也可以完成它们的对应关系, 下一步,就要重启apache了, 其命令:
  /etc/init.d/apache2 restart
  出现这样的提示:
DSC0003.jpg
  
  说明重启成功了. 然后要进行测试了. 切莫激动, 还有一步比较重要的事情,由于我们是在本地测试, 所以需要在本地的HOSTS里进行设置一下, 由于我是XP系统, HOSTS的位置在c:\WINDOWS\system32\drivers\etc\HOSTS, 用记事本打开, 在最底处填写一下
  IP(你本地ubuntu的IP)    域名(你自己编写的)
  如: 192.168.224.143 www.test4.com
  然后在浏览器中输入www.test4.com,看一下效果;
DSC0004.jpg
  大功告成!!  
  

运维网声明 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-94309-1-1.html 上篇帖子: [转]apache的负载均衡配置 下篇帖子: 让php支持mysql,gd,apache,jpeg,freetype的编译配置指令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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