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

[经验分享] apache配置虚拟主机三种方式

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-7 08:18:12 | 显示全部楼层 |阅读模式
1.虚拟机工具:VMware

2.操作系统:CentOS6.5

3.网络环境:内网

4.任务:基于apache虚拟机三种方式的配置

5.说明:对apache虚拟主机的配置掌握程度,直接影响后续对nginx虚拟机的配置效率。

6.解决问题的关键:网上及书籍上对apache虚拟主机配置的方式基本上差不多,实际在做实验过程中发现,通过IP及端口号的实验都可以通过,就是基于主机名访问通不过,研究了一段时间,也查了好多资料,还是没有找出原因,最后通过对老男孩讲nginx配置虚拟主机的时候,当时恍然大悟;原来是我们学习过程都是基于本地xp系统之上,安装虚拟机,通过虚拟机安装linux做实验,所以要在windows平台:

“C:\WINDOWS\system32\drivers\etc”路径下找到hosts文件,在文件中增加主机名与相应IP地址对应。

127.0.0.1localhost

192.168.152.126  www.school.com

192.168.152.129  www.jw.com

192.168.152.130  ntc.jxatei.com

192.168.152.130  server1.com

#当然上面的配置一定要与apache虚拟主机httpd.conf配置是一致的;如果是公网呢?其实道理很简单,我们自己配置IP地址,域名服务商提供,绑定就可以了。要不就自己做(DNS)域名解析。

7.操作步骤:

一、基于IP

1. 假设服务器有个IP地址为192.168.152.130,使用ifconfig在同一个网络接口eth0上绑定3个IP:

[iyunv@localhost root]# ifconfig eth0:1 192.168.152.126
[iyunv@localhost root]# ifconfig eth0:2 192.168.152.128
[iyunv@localhost root]# ifconfig eth0:3 192.168.152.129

2. 修改hosts文件,添加三个主机名与之一一对应:

192.168.152.126   www.jxatei.net
192.168.152.128   jwc.jxatei.net
192.168.152.129   ntc.jxatei.net

3. 建立虚拟主机存放网页的根目录,如在/www目录下建立school、jw、ntc文件夹,其中分别存放school.html、jw.html、ntc.html

/www/school/school.html
/www/jw/jw.html
/www/ntc/ntc.html

4. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

<VirtualHost 192.168.152.126:80>

  ServerName   www.school.com     #主机名

ServerAlias school.com    #别名
  DocumentRoot /www/school/

ErrorLog  "logs/school_error_log"
  <Directory "/www/school">
    Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
  </Directory>
</VirtualHost>
<VirtualHost 192.168.152.128:80>
  ServerName  www.jw.com

ServerAlias jw.com
  DocumentRoot  /www/jw/
  <Directory "/www/jw">
    Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
  </Directory>
</VirtualHost>
<VirtualHost 192.168.152.129:80>
  ServerName www.ntc.com

ServerAlias ntc.com
  DocumentRoot /www/ntc/
  <Directory "/www/ntc">
    Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
  </Directory>
</VirtualHost>

5. 大功告成,测试下每个虚拟主机,分别访问www.school.comwww.jw.comwww.ntc.com

二、基于主机名

1. 设置主机名映射同一个IP,修改hosts:

192.168.152.126  www.jxatei.net
192.168.152.128  jwc.jxatei.net
192.168.152.129  ntc.jxatei.net

2. 跟上面一样,建立虚拟主机存放网页的根目录

/www/school/school.html
/www/jw/jw.html
/www/ntc/ntc.html

3. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

   为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。如果服务器上所有的IP地址都会用到,你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。

  下一步就是为你建立的每个虚拟主机设定<VirtualHost>配置块,<VirtualHost>的参数与NameVirtualHost指令的参数是一样的。每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

  如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

NameVirtualHost *:80
<VirtualHost *:80>  

ServerName *

DocumentRoot /www/

</VirtualHost>

<VirtualHost *:80>

ServerName www.school.com

DocumentRoot /www/school/

<Directory "/www/school”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerName www.jw.com

DocumentRoot /www/jw/

<Directory "/www/jw">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerName www.ntc.com

DocumentRoot /www/ntc/

<Directory "/www/ntc">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

4. 大功告成,测试下每个虚拟主机,分别访问www.school.comwww.jw.comwww.ntc.com

三、基于端口

1.  修改配置文件

将原来的

Listen 80
改为   Listen 8080

2. 更改虚拟主机设置:

<VirtualHost 192.168.152.126:80>
    DocumentRoot /var/www/school/
    ServerName www.school.com
</VirtualHost>
<VirtualHost 192.168.152.126:8080>
    DocumentRoot /var/www/jw
    ServerName www.jw.com
</VirtualHost>



补充:

基于主机名访问,关键在hosts文件

   工作机制:Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,也就是说Hosts的IP解析优先级比DNS要高。

hosts文件在不同操作系统(甚至不同Windows版本)的位置都不大一样。

具体作用:

1)  加快域名解析:对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。

2)  方便局域网用户:在很多单位的局域网中,会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器,访问这些服务器时,要输入难记的IP地址。这对不少人来说相当麻烦。可以分别给这些服务器取个容易记住的名字,然后在Hosts中建立IP映射,这样以后访问的时候,只要输入这个服务器的名字就行了。

3)  屏蔽网站(域名重定向): 有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,其中有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了。在WINDOWS系统中,约定 127.0.0.1 为本地计算机的IP地址, 0.0.0.0是错误的IP地址。



运维网声明 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-40310-1-1.html 上篇帖子: apache 中文乱码问题 下篇帖子: Kali Linux SSH 开机自启动、Apache启动 虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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