43524 发表于 2015-9-30 09:54:19

apache 虚拟主机

为什么需要用到虚拟主机:
   首先它是一个主机,他有操作系统
   我们还需要IP地址 可是对于那些小站点而讲,是及其浪费的。所以我们期望能够在一台主机上虚拟出多个主机,能够服务于多个不同的站点

###################################
apache :
   中心主机:section2
   虚拟主机:3

         同一个IP 主机名不同

               www.magedu.com
               www.a.org
虚拟主机的定义:得先取消中心主机,即注释DocumentRoot
   <VirtualHost Host>
   </VirtualHost>
1、基于IP,Host的写法
   HOST
       IP1:80
       IP2:80
2、基于端口:
   HOST
       IP:80
       IP:8080
3、基于域名:

      *:80
   ServerName 不能相同

#####################################
具体实现方法:基于IP认证
   1、取消中心主机 #DocumentRoot
   2、cd /etc/httpd/conf.d;;vim virtual.conf
   3、
      <VirtualHost 192.168.9.247:80>
             ServerName hello.magedu.com
             DocumentRoot "/www/magedu.com"
      </VirtualHost>

      <VirtualHost 192.168.9.248:80>
             ServerName www.a.org
             DocumentRoot "/www/a.org"
      </VirtualHost>
4、httpd -t检查语法是否有错误
5、mkdir -pv /www/{magedu.com,a.org}创建目录
6、cd magedu.com ;;vim index.html
7、编辑
   <title>MageEdu</title>
   <h1>magedu.com</h1>
8、ip addr add 192.168.9.248/16 dev eth0 为主机再加一个IP地址
9、ip addr show 显示出来
##################################
基于端口认证:
1、追加编辑conf.d下的配置文件;;;你会发现已经有了247这个IP 但是端口不同
      <VirtualHost 192.168.9.247:8080>
             ServerName www.b.net
             DocumentRoot "/WWW/b.net"
      </VirtualHost>
2、编辑主配置文件/etc/httpd/conf/httpd.conf

      Listen 80
      Listen 8080

3、编辑/www/b.net/index.html
4、重启即可
#################################################################
基于名称的虚拟主机
0、vim /etc/httpd/conf/httpd.conf
1、NameVirtualHost *:80 解除注释    意思是80端口上的所有IP
3、vim /etc/httpd/conf/virtual
4、在第一行加 NameVirtualHost 192.168.9.248:80
      <VirtualHost 192.168.9.248:80>
             ServerName www.a.org
             DocumentRoot "/www/a.org"
      </VirtualHost>

      <VirtualHost 192.168.9.248:80>
             ServerName www.b.gov
             DocumentRoot "/www/b.gov"
      </VirtualHost>
############################################333333333
还可以自定义指定日志存放位置及格式
      <VirtualHost 192.168.9.248:80>             ServerName www.b.gov             DocumentRoot "/www/b.gov"             CustomLog/var/httpd/magedu.com/access_log combined
      </VirtualHost>只要有权限,重启后就会自动创建这个目录#########################################################33
让a.org拒绝192.168.9.226这个地址访问
      <VirtualHost 192.168.9.248:80>             ServerName www.a.org             DocumentRoot "/www/a.org"             <Directory "/www/d.gov">
               Options none
               AllowOverride none
               Order deny,allow
               Deny from 192.168.9.226
             </Directory>
      </VirtualHost>   保存    httpd -t 检查是否有语法错误   重启 #####################################################让a.org需要输入用户名密码才能登陆       <VirtualHost 192.168.9.248:80>             ServerName www.a.org             DocumentRoot "/www/a.org"             CustomLog /var/log/httpd/a.org/access_log combined
             <Directory "/www/a.org">
                  Options none
                  AllowOverride authconfig
                  AuthType basic
                  AuthName "Restrict area."
                  AuthUserFile "/etc/httpd/.htpasswd"
                  Required valid-user             </Directory>
      </VirtualHost>保存;;httpd -t 检查是否有语法错误
htpasswd -c -m /etc/httpd/.htpasswd tom添加tom用户

再添加用户就把-c去掉
htpasswd-m /etc/httpd/.htpasswd hadoop
########################################################

如果访问一个压根不存在的一个虚拟主机:
<VirtualHost 192.168.9.247:80>
      ServerName _default_

      DocumentRoot "/www/default"
</VirtualHost>
mkdir /www/default

vim /www/default/index.html
    <h1>Default</h1>
重启   注意在编辑的时候default尽量放在上边


页: [1]
查看完整版本: apache 虚拟主机