lzf79 发表于 2018-11-22 09:35:46

apache设置用户认证及配置各种虚拟主机

  有时候为了提高网站后台的安全性,除了后台本身的密码验证外,还可以在apache上设置网站后台目录的密码认证。而有的时候我们需要在一个服务器上运营多个网站,例如,避免服务器资源的浪费,那就可以通过设置apache的虚拟主机来满足项目需求,虚拟主机主要有三种(域名虚拟主机,ip虚拟主机,端口虚拟主机);
  首先安装apache
  tar zxf http-2.2.17.tar.gz
  cd http-2.2.17
  ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite
  --enable-charset-lite --enable-cgi
  

  make && make install
  

  /usr/local/httpd/bin/apachectl start
  

  生成加密的http账号密码文件:
  /usr/bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
  

  配置apache主配置文件:
  
  Options Indexes FollowSymLinks
  AuthNAME "AWStats Directory"
  AuthType Basic
  AuthUserfile /usr/local/httpd/conf/.awspwd
  requirevalid-user
  AllowOverride None
  Order allow,deny
  Allow from all
  

  
  

  重新启动一下服务,通过浏览器验证是否有效
  /usr/local/httpd/bin/apachectl restart

  


  

  基于域名的虚拟主机
  

  ifconfig eth0 20.20.20.1/16
  ifconfig eth0:0 20.20.20.3/16
  ifconfig eth0:1 20.20.20.4/16
  

  

  mkdir /usr/local/httpd/htdocs/web1
  mkdir /usr/local/httpd/htdocs/web2
  echo 'this is web1' >> /usr/local/httpd/htdocs/web1/index.html
  echo 'this is web2' >> /usr/local/httpd/htdocs/web2/index.html
  

  基于域名的虚拟主机需要域名解析,安装系统光盘的bind服务帮助解析:
  mkdir /media/cdrom
  mount /dev/cdrom/media/cdrom
  rpm -Uvh /media/cdrom/Server/bind-9.3.3-7.el5.i386.rpm
  rpm -Uvh /media/cdrom/Server/caching-nameserver-9.3.3-7.el5.i386.rpm
  rpm -Uvh /media/cdrom/Server/bind-chroot-9.3.3-7.el5.i386.rpm
  cd /var/named/chroot/etc/
  cp -p named.caching-nameserver.conf named.conf
  

  

  vim named.conf
  options {
  directory       "/var/named";
  };
  zone "jiajia.com" IN {
  type    master;
  file    "dragon.com.zone";
  };
  

  

  

  cd /var/named/chroot/var/named
  cp -p localhost.zonedragon.com.zone
  

  

  

  vim jiajia.com.zone
  $TTL    86400
  @               IN SOAdargon.com.       admin.dragon.com. (
  42            ; serial (d. adams)
  3H            ; refresh
  15M             ; retry
  1W            ; expiry
  1D )            ; minimum
  

  IN NS         web1.dragon.com
  web1            IN      A       20.20.20.1
  web2            IN      A       20.20.20.3
  

  

  service named restart
  echo 'nameserver 20.20.20.1' >/etc/resolv.conf
  

  nslookup web1.dragon.com
  nslookup web2.dragon.com
  


  

  

  把配置文件写入到httpd.conf里
  echo "
  namevirtualhost 20.20.20.1
  
  documentroot /usr/local/httpd/htdocs/web1
  servername web1.dragon.com
  
  
  documentroot /usr/local/httpd/htdocs/web2
  servername web2.dragon.com
  
  " >>/usr/local/httpd/conf/httpd.conf
  

  /usr/local/httpd/bin/apachectl restart
  


  

  

  

  

  基于ip地址的虚拟主机:
  echo "
  
  documentroot /usr/local/httpd/htdocs/web1
  servername web1.dragon.com
  
  
  documentroot /usr/local/httpd/htdocs/web2
  servername web2.dragon.com
  
  " >>/usr/local/httpd/conf/httpd.conf
  /usr/local/httpd/bin/apachectl restart
  

  

  


  

  

  

  基于端口的虚拟主机
  

  echo "
  listen 20.20.20.1:81
  listen 20.20.20.1:82
  
  documentroot /usr/local/httpd/htdocs/web1
  servername web1.dragon.com
  
  
  documentroot /usr/local/httpd/htdocs/web2
  servername web2.dragon.com
  
  " >>/usr/local/httpd/conf/httpd.conf
  

  /usr/local/httpd/bin/apachectl restart
  

  


  




页: [1]
查看完整版本: apache设置用户认证及配置各种虚拟主机