home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / unmaintained / mini / Virtual-Web < prev    next >
Text File  |  1997-10-06  |  12KB  |  289 lines

  1. [ 7 October 1997
  2.   The Linux Virtual Web mini-HOWTO is not being maintained by 
  3.   the author any more.  This topic will be covered in the new
  4.   version of the Linux WWW HOWTO. ]
  5.  
  6. VirtualWeb-Mini-HOWTO
  7.  
  8. Dan Pancamo, pancamo@infocom.net http://www.infocom.net/~pancamo/
  9.  
  10. v1.0, 24 November 1995  Copyright 1995
  11.  
  12. This HOWTO discuss the essentials of setting up a Virtual Web Site under Linux.
  13.  
  14. Table of Contents
  15.  
  16. 1.0 What is a Virtual Web Site?
  17. 2.0 What software patched do I need?
  18.     2.1 Linux versions 1.2.X requires the IPalias patch alias-patch-1.2.1-v1
  19.     2.2 Both NCSA 1.5 and Apache support Virtual hosting.
  20. 3.0 How Do I set it up?
  21.     3.1 Creating the new account
  22.     3.2 Setting up the NCSA 1.5 and Apache config files
  23.     3.3 Configuring the interface
  24.     3.4 Registering with Internic
  25.     3.5 Configuring Named
  26.         3.5.1 Example /etc/named.boot (replace x with your IP)
  27.         3.5.2 Example /etc/named.data/db.domain1.com
  28.         3.5.3 Example /etc/named.data/db.xxx.xxx.xxx
  29.         3.5.4 restart named;  i.e. named.restart
  30.     3.6 Virtual Mail
  31.         3.6.1 Sendmail configuration
  32.         3.6.1.1. Create /etc/domainalias
  33.         3.6.1.2 Create the maped DB file
  34.         3.6.1.3.1. Add a Cw record for each host
  35.         3.6.1.3.2. Add the domainalias mapping
  36.         3.6.1.3.3. Add/Change Ruleset 98
  37.     3.7 Virtual FTP
  38.  
  39. 4.0  Links to more Virtual Web Information
  40.  
  41. 1.0 What is a Virtual Web Site?
  42.  
  43.     A World Wide Web (WWW) Server is normally a single machine dedicated to
  44.     processing HTTP requests for a single WWW site.  Simply put, one WWW site
  45.     per machine.  Since the computing resources for processing httpd requests is
  46.     low for most WWW sites, the majority of the computing resources are left
  47.     unused.  A virtual WWW site simple allows more than one WWW site to share a
  48.     single processor.  Instead of having www.domain1.com and www.domain2.com
  49.     requiring two physical computing devices, www.domain1.com and
  50.     www.domain2.com can be located on a single computing device and share common
  51.     resources.
  52.  
  53.     Normally small computing facilities, and small businesses do not have the
  54.     resources to maintain a dedicated web server and a dedicated Internet
  55.     connection.  These cost can easily start off at $10K for setup, and
  56.     $500-2500 monthly to maintain.  Small computing facilities, and small
  57.     businesses are now able to "rent" WWW space from a Virtual WWW providers.
  58.     The customer can then maintain the WWW "pages" using a local telnet and/or
  59.     FTP connection.
  60.  
  61.     WWW providers such as InfoCom Networks http://www.infocom.net/
  62.     provide WWW space as low as $75 per month. A few Virtual Sites
  63.     might clear up the mystery.  So the cost of setting up a WWW site is
  64.     significantly lower than that of setting up a dedicated server and
  65.     connection.  The Virtual Site has a major advantage over other WWW
  66.     addressing schemes such as "www.yourprovider.com/~businessname".  The
  67.     Virtual WWW server inherently contains the ability to move to a new location
  68.     or setup a dedicated WWW server without changing addresses.  Changing WWW
  69.     URL's can result in a major loss of traffic to your site, and lots of
  70.     business literature updates.
  71.  
  72.     With most web sites, www.domain1.com and www.domain2.com both resolve to
  73.     separate IP's.  In order to accept multiple request from a single host, the
  74.     virtual host must be able to answer request for both sites. The method used
  75.     to solve this problem is called IP aliasing.  IP aliasing allows a single
  76.     host to accept request for multiple IP's.  The virtual Web server must have
  77.     the ability to alias IP's
  78.  
  79.     IP aliasing is just one part of the virtual solution. The Domain Name System
  80.     (DNS) also must be configured to resolve both www.domain1.com and
  81.     www.domain2.com.  If domain1.com and domain2.com are new domains, then both
  82.     must be registered with Internic. Currently, Internic is charging $50 a year
  83.     to maintain your domain.
  84.  
  85.     Most virtual WWW sites should also provide virtual mail, or the ability to
  86.     forward all mail to the virtual domain to another user or users.
  87.  
  88.     Virtual FTP or the ability to FTP using the standard host name
  89.     "ftp.domain1.com" should also be configured by the WWW provider.
  90.  
  91. 2.0 What software patched do I need?
  92.  
  93.     2.1 Linux versions 1.2.X requires the IPalias patch alias-patch-1.2.1-v1
  94.         and alias-net-tools.tar. I'm not sure if 1.3.X supports this patch yet.
  95.         For more information on the IPalias patch see
  96.         ftp://ftp.mindspring.com/users/rsanders/ipalias/
  97.  
  98.         Using multiple dummy interfaces has been suggested in place of
  99.         the IPalias solution.  While the dummy solution may work,
  100.         it does not appear to be as clean as the IPalias solution.
  101.         For more information on using Apache and the dummy solution
  102.         see Aram Mirzadeh's virtual hosting information at
  103.         http://www.qosina.com/apache/virtual.html
  104.  
  105.         All that is required to add a new alias using the IPalias method is:
  106.         > /sbin/ifconfig eth0 alias www.domainX.com
  107.  
  108.         Also, the IPalias solution is supported on several other platforms.
  109.  
  110.     2.2 NCSA 1.5, Apache, and Spinner support Virtual hosting.
  111.         http://hoohoo.ncsa.uiuc.edu/docs/Overview.html
  112.         http://www.apache.org/
  113.         http://spinner.infovav.se/
  114.  
  115. 3.0 How Do I set it up?
  116.  
  117.     3.1 Create the new account
  118.         Create a regular Linux account for the virtual customer with home
  119.         directory and mail.
  120.  
  121.     3.2 Setup the NCSA 1.5 or Apache config files
  122.  
  123.         Virtual Host implementations are still changing.  A few patches
  124.         exist to support Virtual Host Check the server's release notes for
  125.         more details.  NCSA 1.5 or Apache now include the Virtual patches,
  126.         and I have been told that Spinner supports virtual hosts.
  127.  
  128.         One virtual patch supports the following srm.conf syntax, however
  129.         the second NCSA 1.5 method of defining a Virtual host allows
  130.         for greater flexibility
  131.  
  132.            SubDocumentRoot www.domain1.com /usr/local/etc/httpd/docs/domain1
  133.            SubDocumentRoot www.domain2.com /usr/local/etc/httpd/docs/domain2
  134.  
  135.  
  136.         NCSA and Apache support the following httpd.conf syntax:
  137.  
  138.  
  139.            ServerAdmin webmaster@domain1.com
  140.            DocumentRoot /usr/local/etc/httpda/docs/domain1
  141.            ServerName www.domain1.com
  142.            ErrorLog logs/errors.domain1.com
  143.            TransferLog logs/access_log.domain1.com
  144.  
  145.  
  146.     3.3 Configuring the interface
  147.  
  148.         Once the IPalias patches have been installed add the
  149.         following to your /etc/rc.d/rc.local on your local web server.
  150.  
  151.            /sbin/ifconfig eth0 alias www.domain1.com
  152.            /sbin/ifconfig eth0 alias www.domain2.com
  153.            /sbin/ifconfig eth0 alias www.domainN.com
  154.  
  155.     3.4 Registering with Internic
  156.  
  157.         If you are setting up a new domain or change a current
  158.         domain, you must register the domain with Internic.
  159.         The template can be found at
  160.         ftp://rs.internic.net/templates/domain-template.txt
  161.  
  162.  
  163.     3.5 Configuring Named
  164.  
  165.         Named will need to be configured so that your virtual domain will
  166.         be visible to the outside world.  I don't claim to be an expert
  167.         on DNS.  Suggestions always welcome.
  168.  
  169.         3.5.1 Example /etc/named.boot (replace x with your IP)
  170.  
  171.               directory /etc/named.data
  172.               primary           realdomain.com                  db.realdomain.com
  173.               primary           xxx.xxx.xxx.IN-ADDR.ARPA        db.xxx.xxx.xxx
  174.               primary           0.0.127.IN-ADDR.ARPA            db.local
  175.  
  176.               primary           domain1.com                     db.domain1.com
  177.               primary           domain2.com                     db.domain2.com
  178.               cache             .                               named.root
  179.  
  180.        3.5.2 Example /etc/named.data/db.domain1.com
  181.  
  182.              $ORIGIN com.
  183.              domain1    IN      SOA     domain1.com. hostmaster.domain1.com. (
  184.                         10134 43200 3600 604800 86400 )
  185.                         IN      NS      ns1.realdomain.com.
  186.                         IN      MX      10 mail.realdomain.com.
  187.                         IN      MX      0 domain1.com.
  188.            domain1.com. IN      A       xxx.xxx.xxx.xxx    ;www.domain1.com IP
  189.  
  190.              $ORIGIN domain1.com.
  191.              ftp        IN      CNAME   domain1.com.
  192.              www        IN      CNAME   domain1.com.
  193.              mail       IN      CNAME   domain1.com.
  194.  
  195.        3.5.3 Example /etc/named.data/db.xxx.xxx.xxx
  196.  
  197.              You should already have a db.xxx.xxx.xxx for your current site
  198.              update it to contain the new virtual domains for reverse lookups
  199.  
  200.                 xx              IN      PTR     www.domain1.com.
  201.                 xx              IN      PTR     www.domain2.com.
  202.  
  203.        3.5.4 restart named;  i.e. named.restart
  204.  
  205.     3.6 Virtual Mail
  206.  
  207.         Your virtual customers will more than likely want the ability to have
  208.         mail that is sent to their domain forwarded to another domain.  A few
  209.         sendmail.cf changes will do the trick. After several months of
  210.         trying different sendmail changes, this is the 1st method that I
  211.         found that works and requires only one sendmail.cf change for each
  212.         new virtual site.
  213.  
  214.         3.6.1 Sendmail configuration
  215.  
  216.           Retrieve the current version of sendmail that contains makemap btree support
  217.  
  218.           3.6.1.1. Create a file called /etc/domainalias with the following mappings:
  219.  
  220.                 *@domain1.com           localnet@realdomain.com
  221.                 *@domain2.com           townplaz@realdomain.com
  222.                 *@domainN.com           soracomp@realdomain.net
  223.  
  224.                 webmaster@domain1.com   somuser@anotherhost.com
  225.                 jamison@domain2.com     anotheruser@somehost.com
  226.  
  227.           3.6.1.2 Create the maped DB file
  228.  
  229.                 > makemap btree /etc/domainalias.db  < /etc/domainalias
  230.  
  231.           3.6.1.3. /etc/sendmail.cf changes:
  232.  
  233.             3.6.1.3.1. Add a Cw record for each new virtual host
  234.  
  235.                 Cwdomain1.com
  236.                 Cwdomain2.com
  237.  
  238.             3.6.1.3.2. Add the domainalias mapping only once
  239.  
  240.                  Kdomainalias btree /etc/domainalias.db
  241.  
  242.             3.6.1.3.3. Add/Change Ruleset 98
  243.  
  244.                 ###################################################################
  245.                 ###  Ruleset 98 -- local part of ruleset zero (can be null)     ###
  246.                 ###################################################################
  247.  
  248.                 S98
  249.  
  250.                 R$+ < $+ . >          $1 < $2 >                         remove trailing dots
  251.                 R$+ < $+ >            $: < > $(domainalias $1$2 $)      match user@address
  252.                 R< > $+ @ $*          $: < $1 > $(domainalias * @ $2 $) match *@address
  253.                 R< $+ > * $*          $: < > $1 $2                      replace * with userid
  254.                 R < $+ > $+           $: < > $2                         bugfix
  255.                 R< > $*               $: $>3 $1                         and rewrite using S3
  256.  
  257.  
  258.           3.5.1.4  Sendmail Testing
  259.                 Test the sendmail configuration to verify the new
  260.                 sendmail.cf changes
  261.                 > sendmail -v -bv info@domain1.com
  262.                 The final destination should be displayed.
  263.  
  264.  
  265.     3.7 Virtual FTP
  266.  
  267.         Currently, I have not been able to get Virtual FTP to work.
  268.         A few patches exist, and I'm sure a working patch exist.
  269.         We just create a working directory  /home/ftp/business/domain1,
  270.         but a true Virtual FTP would be nice.
  271.  
  272.         If anyone would like to contribute a solution, I would be more
  273.         than happy to add it here.
  274.  
  275.         Arnt Gulbrandsen has rewritten ftpd and has included support for
  276.         independent FTP services The Troll Tech FTP Daemon
  277.  
  278.     4.0  Links to more Virtual Web information
  279.  
  280.         http://hoohoo.ncsa.uiuc.edu/docs/Overview.html
  281.         http://www.apache.org/
  282.         http://www.qosina.com/apache/virtual.html
  283.         http://spinner.infovav.se/
  284.         ftp://ftp.mindspring.com/users/rsanders/ipalias/
  285.         http://www.thesphere.com/~dlp/TwoServers/
  286.         http://hoohoo.ncsa.uiuc.edu/docs/setup/httpd/VirtualHost.html
  287.         ftp://ftp.dhp.com:/pub/linux/virtual-hosting
  288.  
  289.