Home

Globule User Manual

image

Contents

1. ZeusBench V1 01 This program is Copyright C Zeus Technology Limited 1996 This program may be used and copied freely providing this copyright notice is not removed This software is provided as is and any express or implied waranties including but not limited to the implied warranties of merchantability and fitness for a particular purpose are disclaimed In no event shall Zeus Technology Ltd be liable for any direct indirect incidental special exemplary or consequential damaged including but not limited to procurement of substitute good or services loss of use data or profits or business interruption however caused and on theory of liability Whether in contract strict liability or tort including negligence or otherwise arising in any way out of the use of this software even if advised of the possibility of such damage Written by Adam Twiss adam zeus co uk March 1996 Thanks to the following people for their input Mike Belshe mbelshe netscape com Michael Campanella campanella stevms enet dec com For the expat xml parser component Copyright c 1998 1999 2000 Thai Open Source Software Center Ltd and Clark Cooper Permission is hereby granted free of charge to any person obtaining a copy of this software and associated documentation files the Software to deal in the Software without restriction including without limitation the rights to use copy modify merge publish distribu
2. You are not required to accept this License since you have not signed it However nothing else grants you permission to modify or distribute the Program or its derivative works These actions are prohibited by law if you do not accept this License Therefore by modifying or distributing the Program or any work based on the Program you indicate your acceptance of this License to do so and all its terms and conditions for copying 10 11 distributing or modifying the Program or works based on it Each time you redistribute the Program or any work based on the Program the recipient automatically receives a license from the original licensor to copy distribute or modify the Program subject to these terms and conditions You may not impose any further restrictions on the recipients exercise of the rights granted herein You are not responsible for enforcing compliance by third parties to this License If as a consequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not distribute the Program at all For exa
3. Future revisions and derivatives of this source code must Some of this code is derived from the free version of the file command originally posted to comp sources unix Copyright info for that program AO ee is included below as required Copyright c Ian F Darwin 1987 Written by lan F Darwin This software is not subject to any license of the American Telephone and Telegraph Company or of the Regents of the University of California Permission is granted to anyone to use this software for any purpose on any computer system and to alter it and redistribute it freely subject to the following restrictions Lo software no matter how awful even if they arise from flaws in it The author is not responsible for the consequences of use of this 2 The origin of this software must not be misrepresented either by Since few users ever read sources credits must appear in the documentation explicit claim or by omission 3 Altered versions must be plainly marked as such and must not be misrepresented as being the original software Since few users ever read sources credits must appear in the documentation 4 This notice may not be removed or altered For the modules mappers mod_imap c component macmartinized polygon code copyright 1992 by Eric Haines erich eye com For the server util_md5 c component aaa IOI IORI IOI TOI ATO ATT AOI TAO TAOS ITI TI II IIIA NCSA HTTPd Server Software Development G
4. In other cases permission to use a particular library in non free version is governed with the following copyright 86 programs enables a greater number of people to use a large body of free software For example permission to use the GNU C Library in non free programs enables many more people to use the whole GNU operating system as well as its variant the GNU Linux operating system Although the Lesser General Public License is Less protective of the users freedom it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library The precise terms and conditions for copying distribution and modification follow Pay close attention to the difference between a work based on the library and a work that uses the library The former contains code derived from the library whereas the latter must be combined with the library in order to run GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING DISTRIBUTION AND MODIFICATION 0 This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License also called this License Each licensee is addressed as you A library means a collection of software functions and or data prepared so as to
5. client The IP number of the peer e g the browsing user doing the request elapsed The amount of time needed to do something serve a request for instance sndsize The number of bytes reported to be shipped browser The User Agent reported from the browsing user very optional information referer The Referer field in the request reported by the browsing user very optional informa tion Timestamps and durations are in apr_time_t precision normally microseconds Sizes are in bytes t client elapsed sndsize brow t lastmod docsize path t old new path t path t path Normally but not guaranteed the following fields are present for each event type 95 References 1 Y Baryshnikov E G Coffman G Pierre D Rubenstein M Squillante and T Yimwadsana Predictability of web server traffic congestion Proc 10th Intl Workshop on Web Content Caching and Distribution Sophia Antipolis France September 2005 pp 97 103 Guillaume Pierre Maarten van Steen and Andrew S Tanenbaum Dynamically selecting op timal distribution strategies for Web documents TEEE Transactions on Computers 51 2002 no 6 637 651 http www cs vu nl gpierre publi DSODSWD_toc2002 php3 Swaminathan Sivasubramanian Guillaume Pierre Maarten van Steen and Gustavo Alonso GlobeCBC Content blind result caching for dynamic web applications Submitted for publica tion October 2005 http www globule org publi GCBR
6. e Apache version 2 0 50 or higher Note that versions 2 1 and 2 2 x are not yet supported e Apache running with a worker or prefork MPM with dynamic modules enabled these are defaults e gcc and g version 3 2 or better There are known problems with gcc 3 4 0 gec 4 0 x is known to work e gmake version 3 79 1 or better You should also preferably install Apache from source If you want to install Apache from RP Ms and require DNS redirection then you must use our supplied RPMs which include the patch If using RPMs not provided by us make sure you also install the developer packages for Apache and APR httpd devel and apr devel Because Globule is a module for Apache you should install Apache first following the guidelines in the next section 2 3 1 APACHE INSTALLATION FROM SOURCE Apache can be set up configured and extended through modules in a multitude of fashions These even in an environment without Globule can clash lead to security issues or other issues It is therefore prudent for us to give some advice on which configuration of Apache is known to work Globule is also known to work with the Apache installation from the major Linux distributions To install Apache from source download Apache from httpd 2 0 55 tar gz Unpack the downloaded distribution gzip c d lt httpd 2 0 55 tar gz tar xvf cd httpd 2 0 55 22 If you decided to enable DNS redirection in your server then you need to patch
7. show c they could even be mouse clicks or menu items whatever suits your program You should also get your employer if you work as a programmer or your school if any to sign a copyright disclaimer for the program if necessary Here is a sample alter the names Yoyodyne Inc hereby disclaims all copyright interest in the program Gnomovision which makes passes at compilers written by James Hacker lt signature of Ty Coon gt 1 April 1989 Ty Coon President of Vice This General Public License does not permit incorporating your program into proprietary programs If your program is a subroutine library you may consider it more useful to permit linking proprietary applications with the library If this is what you want to do use the GNU Library General Public License instead of this License A 6 MySQL database The packaged MySQL version 4 1 9 or similar version is governed with the following copyright notice Appendix H GNU General Public License FEE OEE IE AE IE EOE AIK Version 2 June 1991 Copyright C 1989 1991 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The licenses for most software are designed to take away your freedom to share and change it By contrast the GNU General Public License is intended to guarantee your freedom
8. 8333 cgi bin When using HTTP redirection another way to replicate only parts of a site is to insert the Glob uleReplicate GlobuleReplicals and GlobuleBackupls directives inside a lt Location gt container with a sub path of Replicate only the replicate_me directory lt VirtualHost 8333 gt ServerName www revolutionware net 8333 DocumentRoot lt Location replicate_me gt GlobuleReplicate on GlobuleReplicals GlobuleBackupIs lt Location gt lt VirtualHost gt 39 3 3 Client Redirection using DNS 3 3 1 WHat Is DNS REDIRECTION Until now all configurations shown in this documentation use a redirection mechanism called HTTP redirection This means that when an origin Web server receives a request it can reply by ordering the browser to re issue the same request at a different server This scheme is extremely simple but it has two major drawbacks First as the browser is effectively returned a modified URL it can decide to store that URL for future reference As a consequence removing or replacing a replica may render various cached URLs invalid Second each request is still initially posted to the origin server so the success of the request depends on the availability of the origin DNS redirection addresses these problems by basing redirection on a web site s name For exam ple when a browser queries http www revolutionware net it first resolves the server name www revolutio
9. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not distribute the Library at all For example if a patent license would not permit royalty free redistribution of the Library by all those who receive copies directly or indirectly through you then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library If any portion of this section is held invalid or unenforceable under any particular circumstance the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License 12 If the distribution and or use
10. Modern systems should have sufficient amount of resources such that a default installa tion on a fully installed distribution can be done within an acceptable amount of time Actual time and resource need will vary on your system a typical fairly recent system requires between 5 and 15 minutes and between 100 and 250 MB of temporary disk space to install for a full installation Downloaded the all in one installer from the web site of Globule and execute it as follows wget http www globule org download installer sh chmod u x installer sh sh installer sh keep build The all in one installer will do the full installation automatically after you have confirmed certain settings which are probed by the installer The end result after the installation is a fully capable web server installed in an independent private directory You are free to choose this directory as long as it fits the following requirements 1 the directory is unused and empty or non existent 2 it resides on a local disk Good alternatives for this directory are usr local globule home globule or opt globule depending on your system If you have a desktop system we suggest you choose the default provided by the installer as indicated by the content in the square brackets Enter nothing and press return to accept the default Other questions the installer asks are about checking the probed hostname of the system and whether or not to include MySQL
11. even http berry revolutionware net 3 3 2 REQUIRED ELEMENTS TO SETUP DNS REDIRECTION IN GLOBULE e The Apache installation of the origin server must be compiled with the patch provided by Globule This is done by default when using the automated installer otherwise refer to section 2 3 e You must setup a DNS server that will contain all informations about the domain How to install a DNS server is unfortunately relatively complex and outside the scope of this document We refer the reader to a good DNS tutorial or to this famous book on the topic Alternatively most good registrars offer a service where they run DNS servers for you and simply ask you to provide the information that must be kept there We strongly Thttp www internic net regist html Shttp www freeos com articles 3956 9http www oreilly com catalog dns4 40 recommend readers to select a registrar which provides this service such as Gandi and GoDaddy amongst many others 3 3 3 SETTING UP DNS ENTRIES FOR REDIRECTION Let s assume that you own the domain revolutionware net and that you want to setup DNS redirection for the site http www revolutionware net In a non distributed setup the name www revolutionware net would simply be an alias for the actual server s host name In a Globule setup www revolutionware net will point to different machines when being looked up by different clients We call www revolutionware net the generic name of th
12. have the standard error and access log interface for two reasons 1 The error log in certain cases is the only way in which errors can be reported back to the administrator of the web server AT 2 Standard utilities and analysis software reuse the default Apache access log and to a lesser extent the error log in their operation Globule therefore provides three main access points for monitoring First errors warnings and some other messages are written to the default Apache error log Second an equivalence for the access log is produced The third monitoring access is specific to Globule To make it as accessible as possible detailed Globule information is made available through a web interface The usage of these three are now viewed individually in the next subsections 3 4 1 ERROR LOG Each Apache server maintains one or more error log file s where information warnings and error messages are written The error log is not Globule specific and therefore also other modules use the same error log file to write down messages Its purpose is primary to log messages which hamper the correct or intended working of the web server after the web server has been started Such messages are written into the error log as indicated in the httpd conf configuration file as Apache is a server program Services run in the background without ever contacting the user directly A standard error log file is normally defined naming either error_lo
13. otherwise authentication will not work 5 2 7 GLOBULEBACKUPFOR S lt Location path gt GlobuleReplicaFor origin url secret GlobuleBackupForls origin url backup url lt Location gt The GlobuleBackupForIs directive is used at the replica servers to specify the list of backup servers they can access in case the origin is down The first argument defines the fully qualified URL of the origin server This should be the same as indicated in the GlobuleReplicaFor directive The second argument defines the fully qualified URL of the backup 5 2 8 GLOBULEREDIRECTORFOR lt Location path gt GlobuleRedirectorFor url secret lt Location gt The GlobuleRedirectorForls directive is used at the origin servers to specify one or more ex ternal redirector s Each GlobuleRedirectorForIs directive must match a corresponding Glob uleRedirectorls directive at the redirector server If no external redirector is defined for a given site then the origin server will perform the redirection itself External redirectors are useful because they allow clients to be redirected to replicas even though the master server is down To build a reasonably fault tolerant site at least two external redirectors are necessary 63 This directive takes two parameters The url parameter defines for which site the redirector will be defined The URL must exactly match an exported path as indicated by a GlobuleReplicate directive at the origin server
14. 1 Generic Directives 5 1 1 GLOBULEADMINURL GlobuleAdminURL url password Set the internal reference and configuration location Globule requires a path by which the internals of Globule can be reached This is used by Globule to contact itself and to provide monitoring information Any location which addresses an available space of your web server is valid The URL must end with a slash and must by a fully qualified path including protocol http and hostname 5 1 2 GLOBULEADMURL GlobuleAdmURL is an alias for GlobuleAdminURL 5 1 3 GLOBULEBROKERCONFIGURATIONSERIAL GlobuleBrokerConfigurationSerial test For use with the Globule Broker System GBS at http www globeworl1d net The Globule BrokerConfigurationSerial directive is automatically generated by the GBS system to indicate the last time this configuration file has been generated It should not be changed or removed from the configuration if present There is no use for specifying this directive by hand Globule itself only stores the date value specified but does not interpret it The value is returned by the page as specified by GlobuleAdminURL with appended path gbs 5 1 4 GLOBULEFANCYSERVERNAME GlobuleFancyServerName A fancy name for this machine Gives the server some verbose human interpretable name This is not used by Globule itself but in normal settings reported back through special headers back to the browser and may be used by a Javascript program or s
15. 3 UTILITY PROGRAM GLOBULEUTIL The globuleutil program converts one or more report log files into a file similar in structure to a Apache common or combined log file The output produced is written to standard output and can be either fed directly using a pipe into a web log analyzer program such as webalizer or written to a file globuleutil home www htdocs htglobule report log gt access log When the utility program is given multiple arguments representing multiple report log files they will be merged based on the timestamp in each file Not only report log files may be specified as input files also regular Apache common or combined log file formats may be specified Since most of the time input files are not completely sorted in time you need to either sort them beforehand or indicate to globuleutil that the files are only partially sorted The globuleutil utility will then allow for entries to be out of place as long as the time difference between where the entry should have appeared in the log file based on its timestamp and the place where it actually appeared later on in the log file is no longer than n seconds away The maximum allowed slag n is the lookahead window in time This time difference is on a per input file basis If the window given is too small an error message will be generated When specifying a large time interval window the globuleutil program will execute much slower and consume more memory This trade off depend
16. Beware however that installing Globule by hand from sources or by using pre compiled RPMs requires e that you are knowledgeable enough to edit Apache configuration files by hand e that you understand how to select the right package based on the requirements you have e know how to run the auto configure script configure when compiling from source After having installed Globule refer to section 3 on how to configure it 10 2 1 Unix and Linux All in one installation The all in one installation is a bundling of Globule and all the necessary third party software which installs in a single run This facilitates a standardized environment which works on a multitude of systems The following software packages are included Apache The web server software Globule The module for Apache to replicate web sites PHP A scripting language to generate dynamic pages for Apache Smarty PHP scripts by which PHP can use templates MySQL A database system Webalizer Package to generate statistics on the visit of your web site GD library library helping PHP and Webalizer to generate graphics The copyright notices of these packages are included in Appendix A To obtain maximum portability to different platforms and Linux distributions the installer ac tually compiles the software packages from source Installation therefore takes a bit of time consumes some disk space and requires supporting software such as C and C compilers to be present
17. Contribution shall mean any work of authorship including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner For the purposes of this definition submitted means any form of electronic verbal or written communication sent to the Licensor or its representatives including but not limited to communication on electronic mailing lists source code control systems and issue tracking systems that are managed by or on behalf of the Licensor for the purpose of discussing and improving the Work but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as Not a Contribution Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work 2 Grant of Copyright License Subject to the terms and conditions of this License each Contributor hereby grants to You a perpetual worldwide non exclusive no charge royalty free irrevocable copyright license to reproduce prepare Derivative Works of publicly display publicly perform sublicense and distribute the Work and such Derivative Works in Source or Object form 3 Grant of Patent Licens
18. License instead of this License to a given copy of the Library To do this you must alter all the notices that refer to this License so that they refer to the ordinary GNU General Public License version 2 instead of to this License If a newer version than version 2 of the ordinary GNU General Public License has appeared then you can specify that version instead if you wish Do not make any other change in these notices Once this change is made in a given copy it is irreversible for that copy so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy This option is useful when you wish to copy part of the code of the Library into a program that is not a library 4 You may copy and distribute the Library or a portion or derivative of it under Section 2 in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine readable source code which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange If distribution of object code is made by offering access to copy from a designated place then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code even though third parties are not compelled to copy the source along with the object code 5 A program that contai
19. License to copy and use this software is granted provided that it is identified as the RSA Data Security Inc MD4 Message Digest Algorithm in all material mentioning or referencing this software or this function License is also granted to make and use derivative works provided that such works are identified as derived from the RSA Data Security Inc MD4 Message Digest Algorithm in all material mentioning or referencing the derived work RSA Data Security Inc makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose It is provided as is without express or implied warranty of any kind These notices must be retained in any copies of any part of this documentation and or software For the srclib apr util include apr_md4 h component This is derived from material copyright RSA Data Security Inc Their notice is reproduced below in its entirety Copyright C 1991 2 RSA Data Security Inc Created 1991 All rights reserved License to copy and use this software is granted provided that it is identified as the RSA Data Security Inc MD4 Message Digest Algorithm in all material mentioning or referencing this software or this function License is also granted to make and use derivative works provided that such works are identified as derived from the RSA Data Security Inc MD4 Message Dige
20. Program If any portion of this section is held invalid or unenforceable under any particular circumstance the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License 8 If the distribution and or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written in the body of this License 9 The Free Software Foundation may p
21. Some knowledge on Apache configuration is needed and we advice to work from a template httpd conf as provided by your installation method 3 1 1 How TO UPDATE YOUR CONFIGURATION Configuring Apache and Globule involves making changes to the configuration file httpd conf When making changes to the configuration these will not take effect until your restart Apache The location of the httpd conf file and how to restart Apache depends on your installation method Refer back to the chosen installation method on the location of httpd conf and the preferred method of starting Apache In any case you might also check whether certain errors in the configuration using the command apachectl configtest or globulectl configtest if provided However not all configuration errors show up during startup When Apache starts it will run in the background Any errors at this time will be writing in the error log as specified in the Apache configuration Always check this error log for problems 3 1 2 CHECK YOUR APACHE CONFIGURATION The installed httpd conf might already be adapted however this default configuration file is just a standard template and should be checked and or adapted for your system Refer to the Apache documentation on a full explanation The following settings are at least important for a correct Globule or do vary much between systems These settings should already be partially present in the httpd conf Directive Listen The Listen dire
22. The http localhost should indeed wrongly not end with a slash e The origin site uses its own URL in the path where the replica server should import the document on This way the replica server knows where to fetch the documents from This directive is due to change to use a broker site without notification and it s use is highly experimental at this stage 5 6 2 GLOBULEMIRRORIS GlobuleMirrorIs url weight With this directive you can specify that a non Globule enabled server is to be used as a replica server which should use plain old fashion mirroring to fetch the content from the origin server and configuration must be done manually The url is the address of the mirror site while the weight has the same function as in a regular GlobuleReplicals definition but is a required argument in the GlobuleMirrorls directive Note that most of the advantages of Globule such as consistency merged access logs and account ing are lost Therefor the use of this directive is highly discouraged Globule will maintain the ability to use DNS redirection and makes a minimal check on the availability of the mirror based server such to not redirect to a server which is obviously unavailable It can not however do a full check on the availability 72 We encourage the use of normal Globule enabled replicas and do not actively support the use of mirrors like can be specified with this directive 5 6 3 GLOBULEDISABLEDREPLICAIS GlobuleDisabledReplicals
23. The second parameter is a password used for mutual authentica tion between the origin and the redirector servers The same password must be present in both configurations 5 2 9 GLOBULEDEFAULTREPLICATIONP OLICY GlobuleDefaultReplicationPolicy Tt1 Alex Invalidate PureProxy The GlobuleDefaultReplicationPolicy directive defines the replication policy that should be associated to new documents After a while Globule will use the recorded access logs to this document to decide on which policy is best for this document Globule contains five different policies e Ttl replicates the document at the replica server for a finite time currently fixed at 10 seconds After this delay the document is removed from the replica When requested for this document later on it will fetch it again from the master or one of its backups e Alex is similar to the Ttl policy but computes the time at which a documents remains valid based on the last update of that document The validity period of a document is defined as a fraction of its age defined as the delay between the time it was last updated and the time it was fetched by the replica server e Invalidate replicates the document at the replica servers for indefinite time when a copy of the document is made at a replica server the origin server remembers where copies of this document are located As soon as the document is updated the origin server will send invalidations to the replicas to ask them
24. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL VRIJE UNIVERSITEIT OR ANY AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This product includes software developed by the Apache Software Foundation lt http www apache org gt 80 A 1 Apache httpd server The packaged Apache HTTP server version 2 0 55 or similar version is governed with the following copyright notice Apache License Version 2 0 January 2004 http www apache org licenses TERMS AND CONDITIONS FOR USE REPRODUCTION AND DISTRIBUTION 1 Definitions License shall mean the terms and conditions for use reproduction and distribution as defined by Sections 1 through 9 of this document Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License Legal Entity shall mean the union of the acting entity and all other entities that control are controlled by or are under common control with that entity For the purposes of this defi
25. We ae ebb ka a A 2 PHP scripting language ata aer r aa A Deb ARA A 3 Smarty template engine Ad GD graphical brary e da ea 2 pesos e a ee RES A 5 Webalizer web log report generator ooa e a A 6 MySQL database oe a a a a a e a e File structures and protocols Bl report lopistruct re ca ri e AA Ad BS S TT 77 TT TT TT 78 78 80 81 85 86 89 90 92 94 1 Introduction Globule is a system that performs Web site replication This means that WWW documents are copied across multiple machines where clients can access them A document has one origin server which is the machine where it is edited and published The origin server usually belongs to the owner of the document In addition a document can have any number of replica servers which host copies of the original document and deliver them to the clients Replica servers do not necessarily belong to the owner of the document Replicating a Web site has multiple advantages e The documents remain accessible to clients even if some servers are down provided that at least one of them is alive e The performance of the site is optimized because clients can fetch documents from a server close to them Shorter server to client transfer distances usually mean faster downloads e Multiple servers are better at handling a flash crowd than a single server Flash crowds are events where the request load of a given site increases by seve
26. able to use DNS redirection you must use an Apache installation which has the DNS patch applied to it Default RPM based distributions do not provide an RPM of Apache with this patch applied therefore you have to use one of our RPMs To provide a full service with up to date Apache web services with a configuration known to work we also provide RPMs for a plain distribution system like Apache installation If you are using a modern Unix or Linux distribution which uses or can use RP Ms then you can install Globule from the RPMs as described within this section Alternate less supported binary distributions are available for Debian and another packed as a tarball The latter distributions only provide a basic installation without options such as DNS redirection They can be found on the download page 1 Requirements You will need a recent Linux distribution we usually test using recent Redhat Fedora or Mandrake distributions If you have an older e g RedHat 7 2 Linux version then we strongly recommend that you upgrade Alternatively you can check in Section 6 if and how you can install Globule on your system 2 Make up your mind At this stage you must decide whether you want to enable your server to perform DNS redirection see Section 3 3 for more information on HTTP vs DNS redirection If you don t know what DNS redirection is or you don t own your own domain name then probably you don t need DNS redirection at all 3a If
27. and passed on we want its recipients to know that what they have is not the original so that any problems introduced by others will not reflect on the original authors reputations Finally any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses in effect making the program proprietary To prevent this we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for copying distribution and modification follow GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING DISTRIBUTION AND MODIFICATION 0 This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License The Program below refers to any such program or work and a work based on the Program means either the Program or any derivative work under copyright law that is to say a work containing the Program or a portion of it either verbatim or with modifications and or translated into another language Hereinafter translation is included without limitation in the term nodification Each licensee is addressed as you Activities other than copying distribution and modification are not covered by this License they are outside its scope The act of running the Pr
28. be conveniently linked with application programs which use some of those functions and data to form executables The Library below refers to any such software library or work which has been distributed under these terms A work based on the Library means either the Library or any derivative work under copyright law that is to say a work containing the Library or a portion of it either verbatim or with modifications and or translated straightforwardly into another language Hereinafter translation is included without limitation in the term modification Source code for a work means the preferred form of the work for making modifications to it For a library complete source code means all the source code for all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the library Activities other than copying distribution and modification are not covered by this License they are outside its scope The act of running a program using the Library is not restricted and output from such a program is covered only if its contents constitute a work based on the Library independent of the use of the Library in a tool for writing it Whether that is true depends on what the Library does and what the program that uses the Library does 1 You may copy and distribute verbatim copies of the Library s complete source code as you receive it in any medium prov
29. breaks quite a lot of software including our and MySQL software Besides enabling it provides limited performance increase Since Windows serves pages very slow compared to Linux servers you can safely disable this feature always lt IfModule mpm_winnt c gt Win32DisableAcceptEx lt IfModule gt Locate the existing IfModule mpm_winnt section and add the Win32DisableAcceptEx directive Directive ServerName The ServerName directives appears at least once in the httpd conf at a global level which means not inside a VirtualHost section or other Only one such a ServerName at the global level should exist quite early in the configuration file The single argument to the ServerName directive should be the hostname of your machine which will always resolve to the public IP address of the machine Listen 80 ServerName world cs vu nl 30 If your server does not use the default HTTP port as specified as Listen 80 earlier in the httpd conf then the ServerName should have a colon appended to it Listen 8333 ServerName world cs vu nl 8333 The usage of an IP number instead of a fully qualified hostname is discouraged as the usage of VirtualHosts is not supported nor is DNS redirection VirtualHost sections The usage of VirtualHost is documented in the Apache documentation but due to the many mistakes one can make with it and the effect it has on Globule some remarks on the configuration are below i e when URLs w
30. by the Apache copyright statement and licence for the modifications made to that material Copyright C 1991 2 RSA Data Security rights reserved Inc Created 1991 All License to copy and use this software is is identified as the RSA Data Security Algorithm in all material mentioning or or this function granted provided that it Inc MD5 Message Digest referencing this software License is also granted to make and use derivative works provided that such works are identified as derived from the RSA Data Security Inc MD5 Message Digest Algorithm in all material mentioning or referencing the derived work RSA Data Security Inc makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose It is provided as is without express or implied warranty of any kind These notices must be retained in any copies of any part of this documentation and or software For the srclib apr passwd apr_md5 c component This is work is derived from material Copyright RSA Data Security Inc The RSA copyright statement and Licence for that original material is included below This is followed by the Apache copyright statement and licence for the modifications made to that material MDSC C RSA Data Security Inc MD5 message digest algorithm Copyright C 1991 2 RSA Data Security Inc Created 1991 All rights reserved License to cop
31. coffee lt Location gt lt VirtualHost gt This configuration has one Globule specific directive namely the GlobuleReplicaFor directive which specifies that your friends server will act within the role of a replica server for your as specified in the argument of GlobuleReplicaFor server The GlobuleReplicaFor also needs to be located inside a Location directive to indicate to globule at which path your web site should be available Your friend has a mirror configuration that you have The ServerName and Location in which your friends GlobuleReplicaFor is form the URL as specified by your GlobuleReplicals Vice versa the ServerName and Location in which your GlobuleReplicate GlobuleReplicals is placed form the URL as specified in the argument to GlobuleReplicaFor 3 2 1 USING A BACKUP Whenever a replica copy of a document is not available or no longer valid at a replica server it will fetch a fresh copy of the page from the origin server This way replica servers will keep up to date However it can be that the origin server is not available at the time To this end backup servers may be defined The role of these servers it to maintain a complete set of documents for the replicated web site They obtain this set of pages from the origin server through the same method as normal replica servers but just make sure they keep a valid copy at all times Replica servers can thus fetch a copy of a web page from the origin server but if unavai
32. define how many meta documents may reside in main memory Note that Globule may temporarily exceed this limit while servicing a request GlobuleMaxMetaDocsInMemory takes one parameter which is as you guessed the maximum number of meta documents If you increase this limit then you must probably also increase GlobuleMemSize otherwise your server may crash The default value is 500 5 2 12 GLOBULELOCKCOUNT GlobuleLockCount 4 Globule uses locks to synchronize access to shared memory The number of locks can be set at a global level or can be overridden in an exported or imported section A high number of locks will take more resources on your machine but it will allow better multitasking at the Globule server Some Linux Unix systems will restrict the number of locks that you can allocate Instructions on how to check your current limits and increase them if necessary are available in Section 6 2 2 The default value is 4 locks per exported or imported web site 5 2 13 GLOBULEDIRECTORY lt Location gt GlobuleReplicate on GlobuleDirectory var www htdocs somedir htglobule GlobuleReplicals GlobuleBackupIs GlobuleRedirectorIs lt Location gt Globule needs to store information about documents on disk Each origin replica or backup configured at a given Globule server will need its own repository for meta documents If no GlobuleDirectory directive is defined then meta documents are stored within the dire
33. directories are removed If you create additional directories to hold files of created VirtualHosts web sites and upgrade they could be whiped out when you upgrade because this script will only keep certain directories This is why directories with dots in them are never deleted so you can use the domain name of the web site as the directory name to use as DocumentRoot To avoid data loss always backup the whole installation before upgrading INSTALLER ADVANCED USAGE AND TROUBLESHOOTING Most users do not need to read this section and can safely move to section 3 on how to configure Globule Prerequisite software The installer script is very useful even if your Linux distribution is RPM package based This because the installer script installs everything together in a single location with a standard set of features However since it is not tied to the specific distribution you are using it does not check on the prerequisite software Instead it bundles most necessary software within the installer In very minimal setups however such as supplied by ISPs where even compilers aren t installed you might need to check whether the RPMs below are installed on your system which ed libpng devel dialog expat devel openssl devel strace pcre devel flex gdb db4 devel libxml2 devel libtool gdbm devel gcc c perl DBD MySQL Depending on your distribution you might be able to check whether a package is installed using the command rpm
34. freely subject to the following restrictions 1 This software is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE 2 The origin of this software must not be misrepresented either by explicit claim or by omission In practice this means that if you use PCRE in software which you distribute to others commercially or otherwise you must put a sentence like this Regular expression support is provided by the PCRE library package which is open source software written by Philip Hazel and copyright by the University of Cambridge England somewhere reasonably visible in your documentation and in any relevant files or online help data or similar A reference to the ftp site for the source that is to ftp ftp csx cam ac uk pub software programming pcre should also be given in the documentation 3 Altered versions must be plainly marked as such and must not be misrepresented as being the original software 4 If PCRE is embedded in any software that is released under the GNU General Purpose Licence GPL or Lesser General Purpose Licence LGPL then the terms of that licence shall supersede any condition above with which it is incompatible The documentation for PCRE supplied in the doc directory is distributed under the same terms as the software itself End PCRE LICENCE 83 For the test zb c component
35. from the ordinary General Public License We use this license for certain libraries in order to permit linking those libraries into non free programs When a program is linked with a library whether statically or using a shared library the combination of the two is legally speaking a combined work a derivative of the original library The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom The Lesser General Public License permits more lax criteria for linking other code with the library We call this license the does Less to protect the user s freedom than the ordinary General Public License It also provides other free software developers Less of an advantage over competing non free programs These disadvantages are the reason we use the ordinary General Public License for many libraries However the Lesser license provides advantages in certain special circumstances Lesser General Public License because it For example on rare occasions there may be a special need to encourage the widest possible use of a certain library so that it becomes a de facto standard To achieve this non free programs must be allowed to use the library A more frequent case is that a free library does the same job as widely used non free libraries In this case there is little to gain by limiting the free library to free software only so we use the Lesser General Public License
36. full notice is found lt one line to give the program s name and a brief idea of what it does gt Copyright C 19yy lt name of author gt This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Also add information on how to contact you by electronic and paper mail If the program is interactive make it output a short notice like this when it starts in an interactive mode Gnomovision version 69 Copyright C 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain conditions type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of course the commands you use may be called something other than show w and
37. include the program webal izer to provide statistics about your web site and the globuleutil program is automatically invoked when you access the web page with the webalizer report through the globule administration URL More on the administration URLs in the next section Your installation should include a script etc run webalizer sh which tries to detect which origin site is to be updated and how to run the report log file through globuleutil and feed the result to the webalizer statistical program If you have different needs then you would to modify this script and the webalizer configuration file etc webalizer conf The webalizer reports are also kept up to date in this installation through a periodically run script if kept enabled in the crontab 3 4 5 GLOBULE MONITORING WEB INTERFACE Monitoring data specific to Globule can be accessed through a web interface A globule enabled server provides a single address for all the web sites within Globule s control hosted by the server which is accessible at the URL specified by the GlobuleAdminURL directive A normal installation will have a default set of pages installed at this location when Globule has been compiled with the enable globuleadm arguments If you installed using Globule using the automatic installer then the administration pages are always installed They are not installed for RPM based installations These pages can be customized at will as they are not embedded within
38. is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions b Use a suitable shared library mechanism for linking with the Library A suitable mechanism is one that 1 uses at run time a copy of the library already present on the user s computer system rather than copying library functions into the executable and 2 will operate properly with a modified version of the library if the user installs one as long as the modified version is interface compatible with the version that the work was made with c Accompany the work with a written offer valid for at least three years to give the same user the materials specified in Subsection 6a above for a charge no more than the cost of performing this distribution d If distribution of the work is made by offering access to copy from a designated place offer equivalent access to copy the above specified materials from the same place e Verify that the user has already received a copy of these materials or that you have already sent this user a copy For an executable the required form of the work that uses the Library must include any data and utility programs needed for reproducing the executable from it However as a special exception the materials to be distributed need not include anything that is normally distributed in either source or binary form w
39. its origin before delivering it to the client When a replica server needs to fetch a document from the origin it obviously requires that the origin server is available to deliver the document Remember however that the origin server is typically simply the desktop machine of the site owner Such machines are often unavailable for a multitude of reasons ranging from a voluntary shutdown to a network failure To overcome this problem the origin server can define any number of backup servers Backups are very similar to replica servers except that they hold a full copy of the hosted site If a replica cannot contact the origin server then it can obtain the requested information from any backup Backup servers also perform the role of a regular replica server helping serving the content of a site Once documents have been replicated across multiple servers one needs to automatically redirect client requests to one of the replicas This is done by one or more redirectors which know the list of all replica and backup servers for the site monitor their status and redirect client requests to one of the currently available servers Redirectors can use two different mechanisms for redirection in HTTP redirection a redirector responds to HTTP requests from the clients with a redirection return code 302 Alternatively in DNS redirection a redirector implements a specialized DNS server that resolves the site s name into the IP address of the destinatio
40. log level informa tional etcetera may still be suppressed by a LogLevel directive as used by Apache For instance if you set your ErrorLevel to error you will not see most messages which would have been outputted by the extended profile Also remember that with Apache you should specify the ErrorLevel before the ErrorLog directive 5 1 7 GLOBULEMEMSIZE GlobuleMemSize size Instructs Globule to use a shared memory segment of the instructed size instead of the default The size is in bytes but may be followed with a denomination as specified in 5 7 such as in GlobuleMemSize 8 mb Which specifies 8 megabyte or 8388608 bytes which is also the default Many Linux Unix operating systems do not allow large quantities of shared memory to be al located Instructions on how to check your current limits and increase them if necessary are available in Section 6 2 1 60 5 2 Replication Directives 5 2 1 GLOBULEREPLICATE lt Location path gt GlobuleReplicate on off GlobuleReplicals url secret GlobuleBackupIs url secret GlobuleRedirectorIs url secret lt Location gt The GlobuleReplicate directive is used in an origin server to define which part of the site must be copied to replica backup or redirector servers It must be contained within a standard Apache lt Location gt lt Directory gt or lt Files gt environment It specifies that all the contents which match that environment should or sh
41. net secret 9 lt Location gt In the above example it is declared that of each 10 requests the origin should handle just 1 while the replica server should handle the remaining 9 5 6 6 GLOBULESTATICRESOLV GlobuleStaticResolv dns name A ip address GlobuleStaticResolv dns name CNAME dns name Globule automatically responds to DNS queries for sections for which it is an origin server or redi rector and where DNS redirection is enabled Any query to the name specified in the ServerAlias such an exported section is responded by with an A record of one or more available replica server It is possible to add more entries to Globule such that it can also respond to certain other queries with a fixed result The GlobuleStaticResolv directive adds these entries There are two possible entries which can be added either A or CNAME DNS record types An A record points to the indicated IPv4 address A CNAME indicates an alias pointing to another Fully Qualified HostName FQHN Unlike syntaxes like Bind the FQHN specified here should not have an dot appended to it and is never relative to another domain All dns name s should be fully qualified hostnames i e the hostname with the domain name One possible use of this is to use Globule also to resolve the origin and replica specific site names Normally one would have the specific site name in the ServerName and the generic site name which is resolved by Globule as first in the ServerAlias
42. q package name Tuning of the installer operation It is not encouraged to install the supporting software of Globule in a non standard way however if you do want to tune the installation you can use the flag extra package config to add additional options to how the configure script is run for a particular software packages where package is one of httpd for Apache php globule mysql gd or webalizer The following other options are user available v or verbose Verbose operation will result in more reporting to the console n or noupdate Do not attempt to retrieve newer software over the Internet for upgrading only this is the default for first time installations keep build Recommended option to keep the compiled objects file in place instead of removing the compiled source directory after installation Lastly there are two other options which can be used only when upgrading omit install allows you to prepare a new version without installing it You should also use the keep build switch This way you can keep the server running while compilation of a upgraded version takes place Afterwards you can quickly upgrade a version by manually stop the Apache server using the globulectl command and running the same command but now with the omit build switch This minimizes down time for important systems A typical usage would be cd basedir src installer sh keep build omit install 13 bin globulec
43. support The provided defaults should be correct Including MySQL support is recommended and can co exist with a system wide MySQL Including MySQL support will install a database available only from the web server but takes a relatively long time to build If you want to use a system wide MySQL or do not need a database you can answer No to this question When the installer script has finished all files are installed in the target directory that you specified This directory is named the prefix or base directory A transcript of the installation is written 11 in basedir src installer log We advice you to remove the installer script you just used to avoid accidental re use Be aware that if you will later upgrade entire directories are removed from this tree Read the section on upgrading to understand where you can your files safely After installation you should use the globulect1 script to start not just the Apache Globule software but also the accompanying software basedir bin globulectl start At this time the all in one installer will not automatically start the software when the computer is restarted You can execute the following script basedir bin installcrontab sh to install a crontab which is a periodic check whether the web server is running looks really operational and has been restarted since the last time the httpd conf configuration file was updated If this is not the case then it will cleanly restart the
44. the bzip2 utility You then make the file available to Globule via this GLobuleBGPDataFile directive Based on this file Globule creates a map of the Internet and then uses it to calculate the distance between clients and replicas In general only the most recent BGP data file needs to be downloaded from the RouteViews site If the BGP data file is unavailable or corrupted Globule will default to static redirection Default is dev null 5 3 4 GLOBULEBGPRELOADAFTER GlobuleBGPReloadAfter 86400 When using the AS based redirection policy you will want to keep your routing information up to date The GlobuleBGPReloadAfter directive allows you to specify how often in seconds Globule should re read its BGP data file Note that Globule currently cannot reload this file automatically from the RouteViews FTP site so you will have to do it yourself The wget and cron utilities can be useful here By appending a unit such as min seconds days week you can use the more human friendly numberic value See 5 7 for accepted units The default value is 86400 seconds 1 day 17http sources redhat com bzip2 18http www gnu org software wget wget html 5 4 DNS Redirection A DNS query to a replicates site is responded by a set of IP numbers of the replica servers Accompanying this data is also a Time To Live TTL field indicating how long the result may be cached by the browser or Proxy or an inter
45. the server but communicate with Globule to obtain the monitoring information The uncustomized pages will show a menu to the different subjects at the top of the pages Since the pages evolve with each release this documentation does not strive to give a detailed walk 51 through Rather this documentation only explains the rough outline The pages themselves describe their individual functionality What the administration pages provide is e Generic data about which version of Globule is installed what extensions are available such as PHP and how much global resources are in use e A summary of error messages and diagnostics information e A listing of all web sites which are under the control of Globule at this server This includes sites for which this server plays the role of origin replica or redirector If not the full web site is replicated but only certain parts it will list the from which path the site has been replicated and if within the same site i e same ServerName multiple paths are exported they are shown individually For this reason the web interface refers to these as sections of the server in which Globule plays a role Additionally a section can also be a Globule replicated database as discussed in the section on dynamic content For each section defined you can browse through details such as e The other servers which with this web server is connected for this web site these are called the peers Such
46. to destroy their stale copy e PureProxy does not replicate documents Each time a replica will receive a request for the document it will fetch it from the master and deliver it to the client without storing it in its repository The only sensible replication strategy to be used for disconnected origin server operation is cur rently Invalidate The default is Invalidate 5 2 10 GLOBULEMAXDISKSPACE GlobuleMaxDiskSpace 64mb GlobuleMaxDiskSpace is used at replica servers to define how much disk space may be used for storing the replicated site If the size of the site is greater than the configured allowed space then rarely accessed documents will be removed from the replica Note that Globule may exceed this limit temporarily while servicing a request GlobuleMaxDiskSpace takes one parameter which is the size allocated for this replica in bytes You may append a unit size such as kb mb gb or even gigabytes Note that the default is in bytes so if you specify just 100 it will probably pose some problems as 100 bytes it probably too little for even a single document 64 Default value is 50 MB 5 2 11 GLOBULEMAXMETADOCSINMEMORY GlobuleMaxMetaDocsInMemory 1000 Globule never stores documents in main memory However for performance reasons it often stores information about documents i e meta documents in memory GlobuleMaxMetaDocsInMemory is used at the origin replica and backup servers to
47. type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of course the commands you use may be called something other than show w and show c they could even be mouse clicks or menu items whatever suits your program You should also get your employer if you work as a programmer or your school if any to sign a copyright disclaimer for the program if necessary Here is a sample alter the names Yoyodyne Inc hereby disclaims all copyright interest in the program Gnomovision which makes passes at compilers written by James Hacker SIGNATURE OF TY COON 1 April 1989 Ty Coon President of Vice This General Public License does not permit incorporating your program into proprietary programs If your program is a subroutine library you may consider it more useful to permit linking proprietary applications with the library If this is what you want to do use the GNU Library General Public License instead of this License B File structures and protocols B 1 report log structure Each section of a web site being exported or imported has a htglobule directory which contains accounting information for that web site section In this directory resides a o the report log This log contains information which should be collected at the origin server to make decisions statistics and a merged log of requests which can be conver
48. url secret This directive does almost the same as the GlobuleReplicals directive but the replica server being declared will never actively be used to redirect to Le it is permanently held in the state of unavailable This can be used to test replica servers as they can authorize themselves to the origin server Using the GlobuleDisabledReplicals directive is similar but not the same as defining a replica server with weight 0 We encourage using the weight as a better way to take replica s out of the loop of available replica servers to redirect to 5 6 4 GLOBULEPROXYFOR GlobuleProxyFor url This directive can be used in conjunction with an origin site specification to indicate that the server is an origin server but the original documents do in fact not really reside on this server When the server is requested to serve a document for which it as an origin server has no longer a valid copy it will try to download the document from a third party This third party upstream server is not under a Globule controlled web server This approach is somewhat similar to proxying but then only for a single web site The GlobuleProxyFor directive is used in the following way to make a copy of the web site at http www revolutionware net on the Globule enabled server wereld cs vu nl Origin server specification lt VirtualHost gt ServerName wereld cs vu nl lt Location gt GlobuleReplicate on GlobuleProxyFor http ww
49. which corresponds to the maximum number of global mutexes Globule can allocate Solaris 78 1 Run this command 2 Under the heading IPC Semaphores there is the value semaphore identifiers SEMMNI which corresponds to the maximum number of global mutexes Globule can allocate 79 A Copyright notices Some packages Globule distributions contain third party software They are redistributed under their own copyright Globule itself is subject to the following copyright rules Copyright c 2003 2006 Vrije Universiteit All rights reserved Redistribution and use of the GLOBULE system in source and binary forms with or without modification are permitted provided that the following conditions are met Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution Neither the name of Vrije Universiteit nor the names of the software authors or contributors may be used to endorse or promote products derived from this software without specific prior written permission THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AUTHORS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED
50. world cs vu nl LoadModule globule_module modules mod_globule so GlobuleAdminURL http world cs vu nl globuleadm NameVirtualHost lt VirtualHost gt ServerName www revolutionware net DocumentRoot var www html pages lt Location gt GlobuleReplicate on GlobuleReplicals http wereld cs vu nl 8080 worldpages coffee lt Location gt lt VirtualHost gt This configuration shows the ServerName GlobuleAdminURL etcetera laid out in a manner described in section 3 1 2 It then resumes with defining the www revolutionware net virtual host section and the documents for this web site which will be replicated are to be placed in var www html pages The actual replication is performed by two directives GlobuleReplicate and GlobuleReplicals Both must be defined inside a Location environment which determines from which path the documents will be replicated In this case the path is anything from and all sub paths in other words the entire web site GlobuleReplicate on The GlobuleReplicate declares that the web site must be replicated and that this server will act in the role of origin for the web site Because the GlobuleReplicate directive is placed inside a Location directive the URL path from which to start to replicate is determined from this Location environment You can also turn redirection partially off for a web site Turning off replication is described in 3 2 2 GlobuleReplicals One or multiple GlobuleR
51. you do not want DNS redirection To install Globule you need an recent up to date instal lation of Apache which accept dynamic module loading We provide also Apache RPMs which are known to work and are similar in functionality and construction as the official Apache RPMs by RedHat We however keep more up to date and provide the right mix of modules and set tings which co operate with Globule Because some platforms are lacking behind in the update of Apache module it is recommended that you uninstall any standard Apache RPM you may have and install the RPMs we provide instead rpm e nodeps apache httpd httpd devel httpd manual httpd mmn rpm ihv http www globule org download apache 2 0 55 httpd 2 0 55 1 i386 rpm rpm U http www globule org download 1 3 1 mod globule 1 3 1 1 i386 rpm 3b If you do want DNS redirection Enabling DNS redirection requires that your Apache server can handle UDP requests This is not a standard feature of Apache so you must install the patched version we provide First uninstall any Apache RPM you may have then install our 26 patched RPM since this version is solely dedicated to working with Globule we package the two of them together rpm e nodeps apache httpd httpd devel httpd manual httpd mmn rpm U http www globule org download 1 3 1 globule 1 3 1 1 i386 rpm 4 Get started Our RPMs will install Apache and Globule in the default RedHat installation paths In particular you should
52. your Apache source tree before configuring and compiling it The patch file is distributed in the mod globule 1 3 1 tar gz Globule source package as file udp requests httpd 2 0 55 patch Copy this file from the Globule archive into the Apache source tree and then execute patch p0 lt udp requests httpd 2 0 55 patch Then configure and compile Apache according to the Apache documentation The minimum you should specify is the enable so option to allow extension of Apache with modules We however recommend the following sequence on the configuration script configure prefix usr local globule enable auth anon shared enable auth dbm shared enable cache shared enable file cache shared enable disk cache shared enable mem cache shared enable example shared enable deflate shared enable ssl enable proxy shared enable proxy ftp shared enable proxy http shared Y enable proxy connect shared enable expires shared enable headers enable mime magic enable http disable dav enable status shared enable asis shared enable suexec shared enable info shared enable cgi shared enable include shared enable vhost alias shared enable rewrite shared Then call make install to compile and install Apache in the designated target directory as spec ified by prefix If the bin directory of this prefix is not in your executable search PATH or an other Apache is installed first then you will nee
53. 0000 bee ee 59 51 2 GlobuleAdmURbivs 3 gea aa a PO Ra 4 4 59 5 1 3 GlobuleBrokerConfigurationSerial o o 59 5 1 4 GlobuleFancyServerName 00000022 eee ee ee 59 5 1 5 GlobuleMonitor 2 sasse dodi aaaea a ee ees 60 5 1 6 GlobuleDebugProfile 0 00 2 0 0 0 00000000 60 5 1 7 GlobuleMemSize e 60 5 2 Replication Directives sos saaa t micio p aE E a a a ee 61 5 2 1 GlobuleReplicate eee ap o e ae a e ea a 61 5 2 2 GlobuleReplicals E P e eA e a Te aa 61 5 2 3 GlobuleBackupls e 62 5 2 4 GlobuleRedirectorls o o e e 62 5 2 5 GlobuleReplicaFor e 62 5 3 5 4 5 5 5 6 5 2 6 GlobuleBackupFor a 63 5 2 7 GlobuleBackupForls o 63 5 2 8 GlobuleRedirectorFor o o 63 5 2 9 GlobuleDefaultReplicationPolicy o o o 64 5 2 10 GlobuleMaxDiskSpace 0 0 ee 64 5 2 11 GlobuleMaxMetaDocsmMemory 00004 65 5 2 12 GlobuleLockCount e ee es 65 52 13 GlobuleDirectory e diia tt amp oll a en ao Be 65 5 2 14 GlobuleDatabase o raos g he a e da a a a 66 Redirection Directives evi 4 4 4 pata ca eee Bak we hE ee eh BS 67 5 3 1 GlobuleRedirectionMode 00 0002 00 00004 67 5 3 2 GlobuleDefaultRedirectPolicy 2 0 0 0 0 e 67 5 3 3 GlobuleBGPDataFi
54. 5 5 1 GLOBULEHEARTBEATINTERVAL GlobuleHeartBeatInterval 120seconds GlobuleHeartBeatInterval 2minutes GlobuleHeartBeatInterval 3hours This directive controls how often periodic tasks should take place The most important of these tasks consists of checking whether replica servers are still alive This should be done on a fairly frequent basis otherwise it may take a long time before an unavailable replica is noticed and clients are no longer redirected to it The argument is in seconds or can be suffixed with an appropriate denominator seconds minutes hours days etc The default value is 120 seconds 5 5 2 GLOBULEPOLICYADAPTATIONINTERVAL GlobulePolicyAdaptationInterval 1200seconds GlobulePolicyAdaptationInterval 20minutes GlobulePolicyAdaptationInterval 3hours Every few heart beat events Globule will reevaluate its choices of replication policies for each doc ument If the current policy for a document is no longer the best one its replication policy will be switched to the new best one Evaluating the policy is done on a per document basis but all doc uments for an exported path are evaluated in one go The GlobulePolicyAdaptationInterval directive specifies the delay in seconds between policy re evaluations Please note that the GlobulePolicyAdaptationInterval must be a multiple of GlobuleHeart BeatInterval If it is not then it will be rounded up to the next multiple Any declaration of the GlobuleHeartBeatIn
55. A server is a machine connected to a network which runs an instance of the Globule software Each server may host one or more sites that is be capable of delivering the site s content to its clients As shown in Figure 1 servers can be classified in four categories according to the role they play with respect to this site Each site has one Origin server which typically belongs to the site owner The origin contains the authoritative version of all documents of the site It is also in charge of making all decisions on where when and how replication of the site should take place The origin server is helped delivering documents by any number of replica servers Replica servers replicate documents locally and deliver them to the clients A replica server for a site is typically operated by a different user than its origin so the replica s administrator may impose restrictions on the amount of resources disk space bandwidth etc that the hosted site can use on their machine As a result each replica server typically contains only a partial copy of its hosted site lhttp www globeworld net Replica S erver s Redirector s Partial site copy A Push pull o Y updates yA Origin Push updates Server Backup Server s Full site copy Origin site copy Figure 1 Globule Model Similarly to a caching proxy when requested for a document not present locally a replica server fetches the document from
56. CDWA_draft html Micha Szymaniak Guillaume Pierre and Maarten van Steen Scalable cooperative latency esti mation Proceedings of the 10th International Conference on Parallel and Distributed Systems ICPADS Newport Beach CA USA July 2004 http www globule org publi SCLE_ icpads2004 html Michal Szymaniak Guillaume Pierre and Maarten van Steen Latency driven replica place ment Proceedings of the International Symposium on Applications and the Internet SAINT Trento Italy February 2005 http www globule org publi LDRP_saint2005 html 96
57. ED MEMORY IN YOUR OPERATING SYSTEM Your operating system must be configured to support the amount of shared memory specified in directive GlobuleMemSize You can check and set this as follows Linux 1 Multiply the values returned by the following two commands cat proc sys kernel shmmax cat proc sys kernel shmmni Alternatively if you have Perl installed you can run echo print cat proc sys kernel shmmax cat proc sys kernel shmmni perl 2 The result in bytes should be larger than the amount you want Globule to allocate If not you can adjust them as follows echo 33554432 gt proc sys kernel shmmax echo 4096 gt proc sys kernel shmmni when logged in as root Solaris 1 Run sysdef i 2 Multiply the values listed for max shared memory segment size SHMMAX and shared memory identifiers SHMMNI 3 The result in bytes should be larger than the amount you want Globule to allocate 4 If not you can adjust them by editing etc system as root set shmsys shminfo_shmmax 33554432 set shmsys shminfo_shmmni 4096 set shmsys shminfo_shmseg 200 6 2 2 ALLOW LARGE NUMBERS OF LOCKS IN YOUR OPERATING SYSTEM Your operating system must be configured to support the number of locks specified in directive GlobuleLockCount You can check and set this as follows Linux 1 Run this command 2 Under the heading Semaphore Limits there is the value max number of arrays
58. FAULTREDIRECTPOLICY GlobuleDefaultRedirectPolicy RR AS static Globule can use several redirection policies that is several ways to decide to which replica clients should be redirected to The GlobuleDefaultRedirectPolicy directive allows you to select one policy out of these e RR enables round robin redirection This means that clients will be redirected to each replica server one after the other without trying to optimize the client to replica distance e AS enables AS based redirection It redirects each client to a replica so that the number of Autonomous Systems traversed on the client to replica path is minimized It needs to read network routing information from a file see the GlobuleBGPDataFile and GlobuleBG PReloadAfter directives e static always returns the first host in the list this is sometimes useful when doing stand alone redirection i e when replication is disabled The default value is static 16nttp en wikipedia org wiki Autonomous_system_ 28Internet 29 67 5 3 3 GLOBULEBGPDATAFILE GlobuleBGPDataFile etc oix full snapshot latest dat To use the AS based redirection policy you must first download a view of the current routing in formation from the routeviews org Web site At ftp ftp routeviews org oix route views there is a directory for the current year and month containing a file called oix full snapshot latest dat bz2 You need to download the most recent file and uncompress it using
59. GE THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT 93 NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION 12 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms
60. Globule User Manual Berry van Halderen Guillaume Pierre Version 1 3 1 http www globule org Abstract Globule is a module for the Apache Web server that allows to replicate Web sites across multiple servers potentially located worldwide This improves the site s perfor mance maintains the site available to its clients even if some servers are down and to a certain extent it allows to resist to flash crowds A site owner must only define on which server s the site should be replicated Globule handles the replication automatically It also monitors the status of servers so that it can automatically and transparently redirect Web clients to one of the available replicas Contents 1 Introduction 6 EI Globule Features sisi er a a a 6 IES a A O ea Oh Sed atc Aa 7 1 3 Known issues limitations 2 2 2 00 0000 e 9 2 Globule Installation 10 2 1 Unix and Linux All in one installation 2 ee ee 11 2 2 Windows installation 22444 246 corsario a ORES 15 2 3 Source distribution 4 uta aaa owe e ae e ee 22 2 3 1 Apache installation from source o e 22 2 3 2 Globule installation from source o 0000000000008 23 2 3 3 PHP installation from source e 24 2 4 Installation from RPMs and alikes 2 e 26 3 Server Configuration 28 3 1 Basic Server Configuration 2 e 29 3 1 1 How to update your configuration a 29 3 1 2 Check your Apache configuration a aoaea
61. Replicate on GlobuleReplicals http replica revolutionware net sharedpassword GlobuleBackupIs http backup revolutionware net wachtwoord The backup server will be the same as any other replica server but instead of using GlobuleRepli caFor it will use the directive GlobuleBackupFor and use backup revolutionware net as Server Name and www revolutionware net as ServerAlias Likewise the replica servers should use the name backup revolutionware net in their declaration of a GlobuleBackupForls directive Replica server s configuration ServerName replica revolutionware net ServerAlias www revolutionware net lt Location gt GlobuleReplicaFor http origin revolutionware net sharedpassword GlobuleBackupForIs http origin revolutionware net http backup revolutionware net Not running DNS redirection on port 53 for testing purposes Globule will bind itself to port 53 for answering DNS queries This port number is the only port normally used by browsers to resolve the hostnames in URLs However if you want to just test DNS redirection you can resolve hostnames using the dig program Using the p option you can instruct dig to contact the name server at a different port however you should contact the machine serving the request directly also so you need to hostname construct For instance dig p 5353 wereld cs vu nl www revolutionware net Would instruct dig to ask the name server running on the machine wereld c
62. S CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This software consists of voluntary contributions made by many individuals on behalf of the PHP Group The PHP Group can be contacted via Email at group php net For more information on the PHP Group and the PHP project please see lt http www php net gt This product includes the Zend Engine freely available at lt http www zend com gt A 3 Smarty template engine The packaged Smarty version 2 6 11 or similar notice GNU LESSER GENERAL PUBLIC LICENSE Version 2 1 February 1999 Copyright C 1991 1999 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed This is the first released version of the Lesser GPL It also counts as the successor of the GNU Library Public License version 2 hence the version number 2 1 Preamble The licenses for most software are designed to take away your freedom to share and
63. These specific site names should be static addresses of the origin and replica sites As such they cannot be resolved by Globule itself and should be resolved by an external nameserver This is why Globule is made only the nameserver NS record of the generic site often www yourdomain com GlobuleStaticResolv does allow you to make Globule the authorative nameserver of the entire domain by adding records like origin yourdomain com However you must remember that all stand alone redirectors must have the same data inserted into their configuration Example GlobuleStaticResolv origin mydomain com A 1 2 3 4 GlobuleStaticResolv replica mydomain com CNAME myfriend his isp com 1967 ServerName but these are not user in normal configurations 74 This directive is only available in case DNS redirection is compiled in and into the Apache server 75 5 7 Recognized units For values indicating sizes in bytes you can append the following units kb kbyte kbytes kilobyte kilobytes to indicate a value in multiple of 1024 bytes also known as a binary kilobyte mb mbyte mbytes megabyte megabytes 1048576 bytes or 1024 kilobytes also known as a binary megabyte gb gbyte gbytes gigabyte gigabytes 1073741824 bytes or 1024 megabytes also known as a binary gigabyte tb tbyte tbytes terabyte terabytes 1099511627776 bytes or 1024 gigabytes also known as a binary terrabyte For values which represent a time period you ca
64. To do so attach the following notices to the program It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty and each file should have at least the copyright line and a pointer to where the full notice is found ONE LINE TO GIVE THE PROGRAM S NAME AND A BRIEF IDEA OF WHAT IT DOES Copyright C YYYY NAME OF AUTHOR This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Also add information on how to contact you by electronic and paper mail If the program is interactive make it output a short notice like this when it starts in an interactive mode Gnomovision version 69 Copyright C 19YY NAME OF AUTHOR Gnomovision comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain conditions
65. UDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING 91 REPAIR OR CORRECTION 12 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES END OF TERMS AND CONDITIONS Appendix How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms To do so attach the following notices to the It is safest to attach them to the start of each source file convey the exclusion of warranty and each file the copyright line and a pointer to where the program to most effectively should have at least
66. a Note that it is in general not a good idea to use the same password for several origin replica pairs Replica servers listed on the origin server must add a corresponding GlobuleReplicaFor directive The origin s GlobuleReplicals directive and the corresponding replica s GlobuleReplicaFor directive must mention the same password otherwise mutual authentication will fail The URL mentioned in GlobuleReplicals is a concatenation of the replica servers fully qualified hostname port number if different from 80 and its import path as defined in the replica s 61 GlobuleReplicaFor definition Fully qualified hostnames are mandatory The path must end in a slash as a whole directory is normally exported 5 2 3 GLOBULEBACKUPIS GlobuleBackupIs http replica full domain p4sswOrd1 GlobuleBackupIs http replica full domain 8333 replicapath p4ssw0rd2 GlobuleBackupls is similar to the GlobuleReplicals directive except that is is used at an origin server to define backups of the site rather than to define its replicas It also takes the same arguments Backup servers listed on the origin server must add a corresponding GlobuleBackupFor direc tive The origin s GlobuleBackupIs directive and the corresponding backup s GlobuleBackupFor directive must mention the same password otherwise mutual authentication will fail In addition all replicas of the site must add a GlobuleBackupForls directive in their configuration When they n
67. a ee 29 3 1 3 Add Globule support 32 3 2 Site Replication see 34 43 4 kot a Ge bed ed le A BORA DG 35 3 24 Usine a backup 328 4 de Ale ee oe A Ae ek A 37 3 2 2 Replicating a partial site 2 2 a 39 3 3 Client Redirection using DNS 0 0 2 000000200000 40 3 3 1 What is DNS redirection a a da a eta a i ad E a 40 3 3 2 Required elements to setup DNS redirection in Globule 40 3 3 3 Setting up DNS entries for redirection ooa a 41 3 3 4 Configuring Globule for DNS redirection o ooo a a 42 3 3 5 Testing DNS redirection a 43 3 3 6 Advanced usage sesse ggor aa a A E E a OE E A A 45 3 4 System Monitoring 47 IAL ETORT Ad is ad EA A RL coat ea 48 342 Merged access log bir a a a a 49 3 43 Utility program globuleutil o o e 50 3 4 4 Webalizer monitoring and the installer setup 51 3 4 5 Globule monitoring web interface o ooo a 51 3 5 Dynamically generated content 2 0 0 00 2 a 53 3 5 1 Adding PHP support to Apache aoaaa a 54 3 5 2 Using Globule support in PHP saaa aaa e 54 3 5 3 MySQL query caching with Globule 0 55 Supporting utilities 58 AL GlobuleUtil serani ie e aA he e A a habe PE ie o E DA 58 42 AO yemagan aa un ana A iy Bae Re hee ees 58 Configuration Directive Reference 59 Dil Generic Directives 20 ea aa ol Be A a ee aT WR Ne aee aia 59 5 1 1 GlobuleAdminURL 2 0 0000000
68. ademark and attribution notices from the Source form of the Work excluding those notices that do not pertain to any part of the Derivative Works and d If the Work includes a NOTICE text file as part of its distribution then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file excluding those notices that do not pertain to any part of the Derivative Works in at least one of the following places within a NOTICE text file distributed as part of the Derivative Works within the Source form or documentation if provided along with the Derivative Works or within a display generated by the Derivative Works if and wherever such third party notices normally appear The contents of the NOTICE file are for informational purposes only and do not modify the License You may add Your own attribution notices within Derivative Works that You distribute alongside or as an addendum to the NOTICE text from the Work provided that such additional attribution notices cannot be construed as modifying the License You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use reproduction or distribution of Your modifications or for any such Derivative Works as a whole provided Your use reproduction and distribution of the Work otherwise complies with the conditions stated in this License 5 S
69. all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the executable However as a special exception the source code distributed need not include anything that is normally distributed in either source or binary form with the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable If distribution of executable or object code is made by offering access to copy from a designated place then offering equivalent access to copy the source code from the same place counts as distribution of the source code even though third parties are not compelled to copy the source along with the object code 4 You may not copy modify sublicense or distribute the Program except as expressly provided under this License Any attempt otherwise to copy modify sublicense or distribute the Program is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 5 You are not required to accept this License since you have not signed it However nothing else grants you permission to modify or distribute the Program or its derivative works These actions are prohibited by law if you do not accept this L
70. alling Please wait while Globule is being installed Globule 1 3 1 Setup When the installation itself has finished you will be taken to this web site to configure your web server when you you click OK If you kept the default paths unchanged and installed Globule as Admin then your config uration file must be located at C Program Files Apache Group Apache2 conf httpd conf If you installed as non Admin then it should be in C Documents and Settings lt username gt Apache Group Apache2 conf httpd conf You can start stop your server using the Apache service icon on the bottom right of your screen We recommend you use this service icon which opens the Apache Monitor rather then the menu items This because the menu items do not provide all functionality 9 CONFIGURING YOUR FIREWALL If you are using Windows XP then you must configure your firewall to allow your friends to access the server you just installed Here is how to do it e First you need to know the IP address of your computer Click on Start gt Run and type cmd That will open a shell window Type ipconfig in it and press enter You should get output looking like the screenshot below Keep this window open or write down the IP address 19 C WINDOWS System32 cmd exe olx Microsoft Windows XP Version 5 1 26481 lt C gt Copyright 1985 2061 Microsoft Corp C Documents and Settings W R Dittmer gt ipconfig Windows IP Confi
71. an be used within the same server that runs Globule just not on a web site that is Globule replicated mod_var Also known as type maps Since this module can be compiled in you might want to make sure the module simply isn t active Type maps are made active with the line AddHandler type map var Type maps cannot be supported by Globule because replica servers cannot determine be forehand which alternatives are available in the type map mod_rewrite URLs rewriting is unsafe and can the rewriting cannot interact well with redirection at this moment for the 6 1 2 CONSTRUCTIONS THAT WON T WORK The following Directives and constructions will not operate well with Globule Usage of DirectorySlash OfF By default the Apache configuration has set the DirectorySlash option to true turning it off will break DNS redirection to URLs inadvertently not ending with a slash but which actually is a directory index 6 2 System resource usage In Linux if Apache Globule crashes it sometimes does not deallocate the semaphores used for process synchronization Restarting the server may then fail because it cannot allocate sufficient semaphores You can cleanup all semaphores using ipcrm ipcs s awk int 2 gt 0 print s 2 Use with care especially when running as root as this will release all semaphores also ones still in use by other programs X windows amongst others TT 6 2 1 ALLOW HIGH QUANTITIES OF SHAR
72. andard common log format see Section 3 4 3 Apart from the format also the location where this file is stored is different If you replicate a web site then Globule creates a directory named htglobule in the directory containing the web documents being replicated In this directory a file report log is created which is a log of events accumulated from all replica servers For instance if you have the following definition in your httpd conf DocumentRoot home www htdocs lt Location gt 14The regular access logs are also only partially sorted as the timestamp recorded is the start of a web page transfer but the access is written into the access log at the end of the transfer This interval may already be large but with the accumulated Globule report log this interval may be larger 49 GlobuleReplicate on lt Location gt Then this report log is stored as home www htdocs htglobule report log As mentioned in the introduction of this section there are utilities which depend on a CLF or com bined log format access log file to extract information about the usage of the web site Naturally you would want to be able to use any existing utilities Therefore the globule module is accom panied with a program which transforms a report log file into a valid access log file in combined or CLF format Naturally the additional information stored by Globule is lost in this translation but these would not make sense to any such software 3 4
73. appear 4 The names Apache and Apache Software Foundation must not be used to endorse or promote products derived from this software without prior written permission For written permission please contact apache apache org 5 Products derived from this software may not be called Apache nor may Apache appear in their name without prior written permission of the Apache Software Foundation THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation For more information on the Apache Software Foundation please see lt http www apache org gt This file came from the SDBM package written by oz nexus yorku ca That package was under public do
74. are net 3 3 5 TESTING DNS REDIRECTION With DNS redirection the identity of the server which served your requests will not be shown to you You may then start wondering if redirection actually works or if all requests will end up being served by a single server Most Linux distributions contain the utility dig which is used to query DNS servers by hand If you do not find it it is usually part of an RPM package called bind utils Start by testing your DNS domain Type 43 dig t NS revolutionware net The result looks something like 3 lt lt gt gt DiG 9 2 4 lt lt gt gt t NS revolutionware net 3 global options printcmd Got answer gt gt HEADER lt lt opcode QUERY status NOERROR id 43750 flags qr rd ra QUERY 1 ANSWER 1 AUTHORITY 0 ADDITIONAL 35 QUESTION SECTION revolutionware net 3 ANSWER SECTION revolutionware net 86400 revolutionware net 86400 3 Query time 1 msec 3 SERVER 130 37 20 3 53 130 37 20 3 35 WHEN Thu Nov 10 15 18 18 2005 33 MSG SIZE rcvd 66 IN NS NAME OF YOUR DNS SERVER1 com IN NS NAME OF YOUR DNS SERVER2 com 1 In the answer section you should see at least two lines with the names you the DNS servers responsible for your domain If you used the services of your registrar to hold informations about your domain then both servers should probably belong to it Now test the names that you have created dig origin revolutionware
75. as if this server is the origin of this web site all the servers which play the role of replica server Of interest here is mainly if these servers are available to help your server host your web content e The recent accessed documents and their current status e A report of the accesses as made by webalizer if Globule had been installed through the automated installer 52 3 5 Dynamically generated content Dynamically generated content allows the pages of a web site to be more functional by returning content specifically of interest to the browsing user such as the results of a search function for example Therefore web sites with dynamic content will and are becoming more predominant Dynamic content is defined as documents which are not literally stored as files but generated as the result of a program execution each time the page is being requested by a browser Despite their names DHTML and flash content are not dynamic content as the same content is served to every browser It is just displayed by the browser differently For a web server delivering dynamic content is different than static content because after locating the URL related resource it needs to invoke a program to transform the plain resource to generate the actual content to be passed to the browser An interpreter takes the URL related resource and executes it This can in turn result in accessing additional resources such as files and databases before the result is pa
76. change it By contrast the GNU General Public Licenses are intended to guarantee your freedom to share and change free software to make sure the software is free for all its users This license the Lesser General Public License applies to some specially designated software packages typically libraries of the Free Software Foundation and other authors who decide to use it You can use it too but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case based on the explanations below When we speak of free not price Our General you have the freedom to software we are referring to freedom of use Public Licenses are designed to make sure that distribute copies of free software and charge for this service if you wish that you receive source code or can get it if you want it that you can change the software and use pieces of it in new free programs and that you are informed that you can do these things To protect your rights we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it For example if you distribute copies of the library whether gratis or for a fee you must give the recipients all the rights that we gave you You must make sure that t
77. cluded without limitation in the term modification Each licensee is addressed as you Activities other than copying distribution and modification are not covered by this License they are outside its scope The act of running the Program is not restricted and the output from the Program is covered only if its contents constitute a work based on the Program independent of having been made by running the Program Whether that is true depends on what the Program does 1 You may copy and distribute verbatim copies of the Program s source code as you receive it in any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty keep intact all the notices that refer to this License and to the absence of any warranty and give any other recipients of the Program a copy of this License along with the Program You may charge a fee for the physical act of transferring a copy and you may at your option offer warranty protection in exchange for a fee 2 You may modify your copy or copies of the Program or any portion of it thus forming a work based on the Program and copy and distribute such modifications or work under the terms of Section 1 above provided that you also meet all of these conditions 92 a You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change b You must cause any work
78. config 42 GlobuleAdminURL http wereld cs vu nl globulectl GlobuleRedirectionMode BOTH NameVirtualHost lt VirtualHost gt ServerName origin revolutionware net ServerAlias www revolutionware net GlobuleRedirectionMode DNS DocumentRoot lt Location gt GlobuleReplicate on GlobuleReplicals http replica revolutionware net sharedpassword It is important that the ServerName entry contains the specific server name origin revolutionware net and that the generic server name www revolutionware net appears as the first entry of the Server Alias directive Specific names should be used in other directives such as GlobuleReplicals and GlobuleBackupls You must also update the replica server s configuration file to specify that the replica of the http www revolutionware net site can also be reached using it s location specific address http replica revolutionware net Replica server s config ServerName world cs vu nl GlobuleAdminURL http world cs vu nl globulectl NameVirtualHost lt VirtualHost gt ServerName replica revolutionware net ServerAlias www revolutionware net DocumentRoot lt Location gt GlobuleReplicaFor http origin revolutionware net sharedpassword lt Location gt lt VirtualHost gt You can now start the two servers Do not forget to run them as root as regular users normally can not run DNS redirectors Your site should now be available at URL http www revolutionw
79. cord with Subsection b above to distribute corresponding source code The source code for a work means the preferred form of the work for making modifications to it For an executable work complete source code means all the source code for all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the executable However as a special exception the source code distributed need not include anything that is normally distributed in either source or binary form with the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable If distribution of executable or object code is made by offering access to copy from a designated place then offering equivalent access to copy the source code from the same place counts as distribution of the source code even though third parties are not compelled to copy the source along with the object code You may not copy modify sublicense or distribute the Program except as expressly provided under this License Any attempt otherwise to copy modify sublicense or distribute the Program is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance
80. corresponding GlobuleReplicals directive configured at the origin server The GlobuleReplicaFor directive takes as parameters the URL of the origin site and a password The URL must contain a fully qualified host name and refer to the whole path specified at 62 the origin server e g if the origin server exports http www mysite com myorigin then you cannot import only http www mysite com myorigin subdir at the replica The specified password must be the same as in the origin server s configuration otherwise authentication will not work Note that if the site has one or more backup s then they must be mentioned in each replica server s configuration using the GlobuleBackupForls directive 5 2 6 GLOBULEBACKUPFOR lt Location path gt GlobuleBackupFor url secret lt Location gt The GlobuleBackupFor directive is used to configure a backup server This directive must be used within a lt Location gt or VirtualServer container which indicates what is the location of the backup GlobuleReplicaFor must match a corresponding GlobuleReplicals directive configured at the origin server The URL must contain a fully qualified host name and refer to the whole path specified at the origin server e g if the origin server exports http www mysite com myorigin then you cannot import only http ww mysite com myorigin subdir at the backup The specified password must be the same as in the origin server s configuration
81. ction is easier to understand and set up but has some disadvantages over DNS based redirection After you understand HTTP redirection you can turn to section 3 3 for DNS based redirection REPLICATING A SITE WITH HTTP REDIRECTION We will go through the configuration of a web site replicated across one origin and one replica server Later we will add a backup server which acts as a fall back when the origin isn t available for replica servers to fetch fresh copies of web pages e In this example we assume that you have a computer with hostname world cs vu nl and that you have a web site http www revolutionware net being served from this computer e Your friend provides you with the ability to use his web server on his machine wereld cs vu as a replica At this web server your pages will be replicated at the URL http wereld cs vu nl 8080 worldpages Note that the web servers run at different port numbers yours on the default port 80 the server of your friend at port 8080 With HTTP redirection any combination of ports is possible As an example of a document being replicated consider the photo image file available at http wuw revolutionware net photo jpg This will be copied and made available at http wereld cs vu nl 8080 worldpages photo jpg To replicate your site www revolutionware net you must modify your configuration to something like 35 nl Your origin server s configuration Listen 80 ServerName
82. ctive instructs Apache to listen to one or more ports The Listen directive must always be specified even if the default port 80 is used At the time of release of version 1 3 1 of 29 Globule the usage of multiple listen ports or the use of SSL HTTPS may not fully functional Make sure that the port specified here is in accordance with the specification on ServerName NameVirtualHost and VirtualHost directives as GlobuleReplicals For etcetera directives Example Listen 8333 Directives User and Group When Apache is instructed to run on from port 80 it requires superuser priviledges and thus needs to be started as root Since this can cause security issues Apache is always instructed to try to change its identity after startup to the Unix user and group as specified by the directives User and Group Standard Unix Linux operation as well as the recommended Apache setup is to change to the Unix user nobody and group 1 There are however Linux distributions which provide separate Unix users and groups such as apache httpd www web etcetera If you run off a default distribution you might need to use these groups in order for the web server to access all files The Unix user group combination nobody and 1 are always available Example User nobody Group 1 For Windows users Windows users who use DNS redirection their machine plays the role of the redirector need to disable the AcceptEx windows call This Microsoft optimization
83. ctory which contains documents in a sub directory called htglobule The GlobuleDirectory directive allows to set this directory to a different path GlobuleDirectory take as parameter the absolute path of the directory where meta documents must be stored instead If the specified directory does not exist Globule will create it automat 65 ically When Globule is started as root it will transfer the ownership of the directories in the GlobuleDirectory to the user that will run the worker servers i e the user specified via the standard Apache User directive The use of this directive is however discouraged and may be depricated in future 5 2 14 GLOBULEDATABASE GlobuleDatabase mysql user password hostname database secret GlobuleDatabase http host path secret At the origin server the first syntax form is used to establish a connection to the actual database The latter forms are used at the replica sites to tunnel queries to the origin server In effect both forms provide a method for executing queries on the database using a HTTP interface to be used by Globule only mounting the database on a HTTP address The GlobuleDatabase directive should be enclosed inside a lt Location gt environment where origin and replica servers should use the same path in the Location otherwise PHP scripts cannot transparently access the database Normally the hostname is set to localhost to use the local database accessible through a Unix d
84. d to use either the with apache or with apxs later when compiling Globule If Apache is installed using a with layout instead of a prefix and or individual paths have set to split the different items such as APR apr util and libexec directories then you are advised to use the with apxs and with apr flags 2 3 2 GLOBULE INSTALLATION FROM SOURCE To compile Globule from source after having installed Apache with optionally the DNS redirection patch you can use the compressed tar archive available at mod globule 1 3 1 tar gz Unpack this archive and read the README INSTALL and NEWS file for any last minute release notes that may have been added gzip c d lt mod globule 1 3 1 tar gz tar xvf cd mod globule 1 3 1 As usual first call configure as supplied with most open source projects and available with the standard options If you however installed Apache in a non standard path then you must specify this path using the with apache option when running configure Note that you must specify the root Apache directory e g usr local globule rather than the directory where the Apache executable resides e g usr local globule bin If you used the prefix option to specify a path when installing Apache then you must use the same path here as well 23 Alternatively to the with apache option you can also use with apxs to specify the absolute path where the apxs program is installed This file is usually
85. distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies a version number of this License which applies to it and any later version you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Program does not specify a version number of this License you may choose any version ever published by the Free Software Foundation If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different write to the author to ask for permission For software which is copyrighted by the Free Software Foundation write to the Free Software Foundation we sometimes make exceptions for this Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally NO WARRANTY BECAUSE THE PROGRAM IS LICENSED FREE OF CHAR
86. e PHP must not be used to endorse or promote products derived from this software without prior written permission For written permission please contact groupCphp net 4 Products derived from this software may not be called PHP nor may PHP appear in their name without prior written permission from groupCphp net You may indicate that your software works in conjunction with PHP by saying Foo for PHP instead of calling it PHP Foo or phpfoo 5 The PHP Group may publish revised and or new versions of the license from time to time Each version will be given a distinguishing version number Once covered code has been published under a particular version of the license you may always continue to use it under the terms of that version You may also choose to use such covered code under the terms of any subsequent version of the license 85 published by the PHP Group No one other than the PHP Group has the right to modify the terms applicable to covered code created under this License 6 Redistributions of any form whatsoever must retain the following acknowledgment This product includes PHP freely available from lt http www php net gt THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE PHP DEVELOPMENT TEAM OR IT
87. e Subject to the terms and conditions of this License each Contributor hereby grants to You a perpetual worldwide non exclusive no charge royalty free irrevocable except as stated in this section patent license to make have made use offer to sell sell import and otherwise transfer the Work where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution s alone or by combination of their Contribution s with the Work to which such Contribution s was submitted If You institute patent litigation against any entity including a cross claim or counterclaim in a lawsuit alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed 4 Redistribution You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium with or without modifications and in Source or Object form provided that You meet the following conditions a You must give any other recipients of the Work or Derivative Works a copy of this License and b You must cause any modified files to carry prominent notices 81 stating that You changed the files and c You must retain in the Source form of any Derivative Works that You distribute all copyright patent tr
88. e aggregation of another work not based on the Program with the Program or with a work based on the Program on a volume of a storage or distribution medium does not bring the other work under the scope of this License 3 You may copy and distribute the Program or a work based on it under Section 2 in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following a Accompany it with the complete corresponding machine readable source code which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or b Accompany it with a written offer valid for at least three years to give any third party for a charge no more than your cost of physically performing source distribution a complete machine readable copy of the corresponding source code to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or c Accompany it with the information you received as to the offer to distribute corresponding source code This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer in accord with Subsection b above The source code for a work means the preferred form of the work for making modifications to it For an executable work complete source code means all the source code for
89. e roots has a purpose that is entirely well defined independent of the application Therefore Subsection 2d requires that any application supplied function or table used by this function must be optional if the application does not supply it the square root function must still compute square roots These requirements apply to the modified work as a whole If identifiable sections of that work are not derived from the Library and can be reasonably considered independent and separate works in themselves then this License and its terms do not apply to those sections when you distribute them as separate works But when you distribute the same sections as part of a whole which is a work based on the Library the distribution of the whole must be on the terms of this License whose permissions for other licensees extend to the entire whole and thus to each and every part regardless of who wrote it Thus it is not the intent of this section to claim rights or contest your rights to work written entirely by you rather the intent is to exercise the right to control the distribution of derivative or collective works based on the Library In addition mere aggregation of another work not based on the Library with the Library or with a work based on the Library on a volume of a storage or distribution medium does not bring the other work under the scope of this License 3 You may opt to apply the terms of the ordinary GNU General Public
90. e site which represents all machines collectively Additionally each server taking part in the replication needs a specific name of its own that will be used when Globule needs to contact one specific server within the replicated site It is not a problem to give multiple names to the same machine so even if these machines already have names e g wereld cs vu nl you should create additional generic and specific names just for the sake of the Web site Imagine that you have two machines called wereld cs vu nl and world cs vu nl which you want to perform the role of origin server and replica server respectively Let s assign them the spe cific names origin revolutionware net and replica revolutionware net respectively The following lines should be inserted in your DNS zone ORIGIN revolutionware net origin IN CNAME wereld cs vu nl replica IN CNAME world cs vu nl Do not forget the dots at the ends of the lines Alternatively if you know the IP addresses of your servers e g 130 37 198 252 and 130 37 193 70 then you may define your zone as follows to provide minor performance and reliability improve ments ORIGIN revolutionware net origin IN A 130 37 198 252 replica IN A 130 37 193 70 Note that A records do not end with a dot You must now define the generic name www revolutionware net where your site will be located We do not want to associate a specific IP address to this name but inst
91. e verb httpd conf or check whether all are inserted 1 The PHP module is being loaded using LoadModule php5_module modules libphp5 so 2 PHP based index files are preferred over others Look at the DirectoryIndex directive in your httpd conf The alternative index php should be the first argument in the list 3 Locate other directives named AddType the following lines should be present AddType application x httpd php php AddType application x httpd php source phps With these changes and a restarted server PHP support is made available to the Apache web server 2 4 Installation from RP Ms and alikes We provide also alternative installation methods which require more experience with the packages your Linux distribution uses When using a distribution package such as the RPMs provided and described here you need to select which primary package is needed for your system Multiple different RPMs with actual the same software package have to be provided for if you do want DNS redirection or not where to install the software the default location or one in usr local and which architecture you have Most importantly though RPMs provide no means to make an initial working configuration file You therefore have to locate the Apache configuration file and modify it by hand Also the actual installation is scattered in different places var www and etc httpd for instance with which you have to be familiar If you want to be
92. ead let Globule s DNS redirector decide which IP address should be returned to clients who lookup that name In the setup we are creating the origin server will also be the DNS redirector so you need to insert this in the DNS it is not possible to use an TP address here instead of the name origin revolutionware net www IN NS origin revolutionware net l0nttp www gandi net http www godaddy com 12Do not use specific names for any other purpose unless you really know what you are doing In particular if one server takes part in the replication of two different sites then it must have two different specific names one for each site and these should not be the original local hostnames 131f your registrar provides you with a web interface to assign DNS records the exact syntax may be different Check your registrar s documentation 41 Be warned that any change in the DNS records may take a few hours before being ready for use If your DNS redirected site does not work as expected and you see errors like www revolutionware net not found this probably means that you should be patient and wait for changes to be fully prop agated 3 3 4 CONFIGURING GLOBULE FOR DNS REDIRECTION You must now configure the origin and the replica server so that they support DNS redirection Two modifications are needed compared to a non replicated setup 1 The origin server must be told to act as a DNS redirector 2 The origin and r
93. ed GD version 2 0 33 or similar version is governed with the following copyright notice Portions copyright 1994 1995 1996 1997 1998 1999 2000 2001 2002 by Cold Spring Harbor Laboratory Funded under Grant P41 RRO2188 by the National Institutes of Health Portions copyright 1996 1997 1998 1999 2000 2001 2002 by Boutell Com Inc Portions relating to GD2 format copyright 1999 2000 2001 2002 Philip Warner Portions relating to PNG copyright 1999 2000 2001 2002 Greg Roelofs Portions relating to gdttf c copyright 1999 2000 2001 2002 John Ellson ellson lucent com Portions relating to gdft c copyright 2001 2002 John Ellson ellson lucent com Portions relating to JPEG and to color quantization copyright 2000 2001 2002 Doug Becker and copyright C 1994 1995 1996 1997 1998 1999 2000 2001 2002 Thomas G Lane This software is based in part on the work of the Independent JPEG Group See the file README JPEG TXT for more information 89 Portions relating to WBMP copyright 2000 2001 2002 Maurice Szmurlo and Johan Van den Brande Permission has been granted to copy distribute and modify gd in any context without fee including a commercial application provided that this notice is present in user accessible supporting documentation This does not affect your ownership of the derived work itself and the intent is to assure proper credit for the authors of gd not to interfere with your produc
94. edit your configuration by opening file etc httpd conf httpd conf with your favorite text editor Please read Section 3 1 for basic configuration directives An attractive way is to avoid composing and maintaining the httpd conf configuration file is to use the Globule Broker System which is an automated way to maintain the co operative rela tionships between origin and replica servers and generate their httpd conf configuration scripts automatically You can start stop your server with this command etc rc d init d httpd start stop 5 Installing Globule RPMs in non standard directories If you don t want to install your server in the standard RedHat paths e g because you want to install Globule side by side to an existing Apache server then you can use httpd local 2 0 50 1 1386 rpmand mod globule local 1 3 instead of httpd 2 0 50 1 i386 rpmand mod globule 1 3 1 1 i386 rpm Apache and Glob ule will be installed in directory usr local globule Your configuration file will be found in usr local globule conf httpd conf To start stop your server you must use usr local globule bin apachectl start stop 27 1 1 1386 rpm 3 Server Configuration Much like Apache needs to be configured on which web sites it needs to serve Globule as a module to Apache also needs to be told which parts of the sites served by Apache need to be replicated Likewise instructions on security configuration and special handling need to be selected G
95. eed a fresh copy of a document if the origin server is unreachable then they will retrieve it from one of the backups specified that way 5 2 4 GLOBULEREDIRECTORIS GlobuleRedirectorIs http redir full domain p4sswOrd1 GlobuleRedirectorIs http redir full domain 8333 redirpath p4ssw0rd2 GlobuleRedirectorIs is used at an origin server to specify one or more stand alone redirectors for the site Using one or more redirector s external to the origin server is useful to keep the site running even though the origin may be down If no redirector is specified for a given origin then the origin server will automatically act as its own redirector GlobuleRedirectorIs takes the same arguments as a GlobuleReplicals directive Redirector servers listed at an origin server must add a corresponding GlobuleRedirectorFor direc tive The origin s GlobuleRedirectorls directive and the corresponding backup s GlobuleRedirectorFor directive must mention the same password otherwise mutual authentication will fail 5 2 5 GLOBULEREPLICAFOR lt Location path gt GlobuleReplicaFor origin url secret GlobuleBackupForls origin url backup url GlobuleBackupForls origin url 2nd backup url lt Location gt The GlobuleReplicaFor directive is used to configure a replica server This directive must be used within a lt Location gt or VirtualServer container which indicates what is the location of the replica GlobuleReplicaFor must match a
96. eplica servers must be configured to respond to the newly defined generic and specific DNS names A normal origin server configuration without DNS redirection based on the machine hostname wereld cs vu nl and the site www revolutionware net would look similar to Original origin server s configuration ServerName wereld cs vu nl GlobuleAdminURL http wereld cs vu nl globulectl NameVirtualHost lt VirtualHost gt ServerName www revolutionware net DocumentRoot lt Location gt GlobuleReplicate on GlobuleReplicals Note that the sections separated by vertical dots appear at different points in the configu ration file This order matters especially the VirtualHost which needs to be at the end of the configuration file First let s enable DNS redirection at the origin server This is done using the GLobuleRedirectionMode directive At the global level you need to add or modify the redirection mode into GlobuleDefaultRedirection BOTH enabling both HTTP and DNS redirection for the server as a whole Then inside each VirtualHost section which specifies an origin of a Globule replicated site you must declare whether to use HTTP redirection or DNS redirection only Having done that you only need to specify that your site can be reached both as http www revolutionware net and http origin revolutionware net Here is the resulting configuration file ServerName wereld cs vu nl New origin server s
97. eplicals then declare the replica server s to which to replicate the web site to You an your friend need to agree upon an URL path you are exporting assumed until now to be http www revolutionware net and a URL path on which your friend will be importing your web pages assumed until now to be http wereld cs vu nl 8080 worldpages 4In this configuration we must have a separate global ServerName different from the one we will be replicating in this example This because http www revolutionware net is being exported from and we had learned that the URL specified by GlobuleAdminURL cannot overlap with an exported origin web site If you would only replicate a partial site one can use just a single hostname 36 You also need to agree upon a shared secret a password known by both your origin server and your friends replica server and used for inter server authorization In the above configuration the phrase coffee was chosen Now your server is configured but your friend needs to update his configuration as well Friend s replica server s configuration Listen 8080 ServerName wereld cs vu nl DocumentRoot var www html LoadModule globule_module modules mod_globule so GlobuleAdminURL http wereld cs vu nl 8080 globuleadm NameVirtualHost lt VirtualHost gt ServerName wereld cs vu nl DocumentRoot var www html lt Location worldpages gt GlobuleReplicaFor http www revolutionware net
98. g or error log and placed into the ServerRoot logs directory Similar to what Apache itself does Globule associates different levels of significance to messages it generates This allows the administrator to select which messages should be written into the log or processed otherwise Globule error warning and informational messages are not marked any differently from any other messages Next to the LogLevel directive however there is another Globule specific directive that controls how verbose Globule is in reporting events This because within a running Globule enabled server you want to be able to increase the verbosity for certain types of events when finding faults The directive GlobuleDebugProfile sets the initial verbosity of Globule Only one GlobuleDebugProfile directive can be and should be used which takes global effect over the web sites A common use it to set it at a default level using GlobuleDebugProfile default This will keep any messages of level error or above passing through to the Apache logging default significant error messages are logged defaults same as default method Other profiles available at this time are extended errors and exceptional situations are logged this will cause periodically logging even if idle verbose more verbose logging of events These levels relate to the LogLevel warn and info but Globule may provide specific filters to specific classes of events at runtime For a c
99. guration Ethernet adapter Local Area Connection Connecti specific DNS Suffix IP Addre 130 37 193 21 Subnet M 255 255 255 0 Default Gateway gt 130 37 193 1 C Documents and Settings W R Dittmer gt e You can now configure your firewall to allow HTTP requests to enter your system Click Start gt Run then type in control netconnections and click OK Select the net work device you use to connect to the Internet e g Local Area Connection then click Properties and the Advanced tab Click on the Settings button and enable protect my computer if needed Click on the Advanced tab In the list of Services check Web Server HTTP A window should pop up or click on edit Fill in the IP address you got from the first steps and click 0K If you do not see Web Server HTTP then select the Add button fill in the service name your IP address and 80 for both external and internal port e If you enabled DNS redirection in step 3 then you must also allow DNS requests to enter your system Click the Add button Fill in the service name DNS and your IP address where requested and the other fields as seen in the screenshot below Note that UDP is checked and TCP is unchecked 20 eb Local Area Connection Properties ax General Advanced Select the services running on your network that Internet users can access Services Descr
100. hey too receive or can get the source code If you link other code with the library you must provide complete object files to the recipients so that they can relink them with the library after making changes to the library and recompiling it And you must show them these terms so they know their rights We protect your rights with a two step method 1 we copyright the library and 2 we offer you this license which gives you legal permission to copy distribute and or modify the library To protect each distributor we want to make it very clear that there is no warranty for the free library Also if the library is modified by someone else and passed on the recipients should know that what they have is not the original version so that the original author s reputation will not be affected by problems that might be introduced by others Finally software patents pose a constant threat to the existence of any free program We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder Therefore we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license Most GNU software including some libraries is covered by the ordinary GNU General Public License This license the GNU Lesser General Public License applies to certain designated libraries and is quite different
101. i e globule mysql_connect and or globule mysql_select_db you must insert a call to globule mysql_reattach The argu ment in this statement is described in section 3 5 3 and represents a Globule specific URL for the database A good name might be db database where database is the database name of being connected to For example globule_mysql_connect localhost master globule_mysql_select_db globecbc globule_mysql_reattach db globecbc e Furthermore when using MySQL you must replace the usage of mysql_query with the usage of globule_mysql_execute and declare the queries being made first as described next Usage of query templates For Globule to handle cached database queries correctly it is necessary to declare all queries before they can be use by your PHP scripts The usage of mysql_query is therefore not directly possible Instead any query you want to execute first needs to be stored before it can be used This procedure is similar to the prepared statement interface in the improved PHP MySQL interface and many other modern database interfaces Instead of building the string representing the query and executing it such as in 55 for i 0 i lt 10 i query select from t where t id gt i and t rel 4 mysql_query query We instead will first declare a template of the query globule_mysql_declare myquery select from t where t id gt and t rel 4 These dec
102. icense Therefore by modifying or distributing the Program or any work based on the Program you indicate your acceptance of this License to do so and all its terms and conditions for copying distributing or modifying the Program or works based on it 6 Each time you redistribute the Program or any work based on the Program the recipient automatically receives a license from the original licensor to copy distribute or modify the Program subject to these terms and conditions You may not impose any further restrictions on the recipients exercise of the rights granted herein You are not responsible for enforcing compliance by third parties to this License 7 If as a consequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not distribute the Program at all For example if a patent license would not permit royalty free redistribution of the Program by all those who receive copies directly or indirectly through you then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the
103. ided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty keep intact all the notices that refer to this License and to the absence of any warranty and distribute a copy of this License along with the Library You may charge a fee for the physical act of transferring a copy and you may at your option offer warranty protection in exchange for a fee 2 You may modify your copy or copies of the Library or any portion of it thus forming a work based on the Library and copy and distribute such modifications or work under the terms of Section 1 above provided that you also meet all of these conditions a The modified work must itself be a software library b You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change c You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License d If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility other than as an argument passed when the facility is invoked then you must make a good faith effort to ensure that in the event an application does not supply such function or table the facility still operates and performs whatever part of its purpose remains meaningful For example a function in a library to compute squar
104. inate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 9 You are not required to accept this License since you have not signed it However nothing else grants you permission to modify or distribute the Library or its derivative works These actions are prohibited by law if you do not accept this License Therefore by modifying or distributing the Library or any work based on the Library you indicate your acceptance of this License to do so and all its terms and conditions for copying distributing or modifying the Library or works based on it 10 Each time you redistribute the Library or any work based on the Library the recipient automatically receives a license from the original licensor to copy distribute link with or modify the Library subject to these terms and conditions You may not impose any further restrictions on the recipients exercise of the rights granted herein You are not responsible for enforcing compliance by third parties with this License 11 If as a consequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License
105. intent of this section to claim rights or contest your rights to work written entirely by you rather the intent is to exercise the right to control the distribution of derivative or collective works based on the Program In addition mere aggregation of another work not based on the Program with the Program or with a work based on the Program on a volume of a storage or distribution medium does not bring the other work under the scope of this License You may copy and distribute the Program or a work based on it under Section 2 in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following a Accompany it with the complete corresponding machine readable source code which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or b Accompany it with a written offer valid for at least three years to give any third party for a charge no more than your cost of physically performing source distribution a complete machine readable copy of the corresponding source code to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or c Accompany it with the information you received as to the offer This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer in ac
106. ions about the suitability of this software for any purpose It is provided as is without express or implied warranty CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ERA A 82 AND FITNESS IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE DATA OR PROFITS WHETHER IN AN ACTION OF CONTRACT NEGLIGENCE OR OTHER TORTIOUS ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE Copyright c 1991 Bell Communications Research Inc Bellcore Permission to use copy modify and distribute this material for any purpose and without fee is hereby granted provided that the above copyright notice and this permission notice appear in all copies and that the name of Bellcore not be used in advertising or publicity pertaining to this material without the specific prior written permission of an authorized representative of Bellcore BELLCORE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE IT IS PROVIDED AS IS WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES For the srclib apr include apr_md5 h component This is work is derived from material Copyright RSA Data Security Inc The RSA copyright statement and Licence for that original material is included below This is followed
107. iption of service Globule DNS Redirection Name or IP address for example 192 168 012 of the computer hosting this service on pour network Po External Port number for this service CE Orce uDP Internal Port number for this service e Congratulations you have configured your firewall From now on any user connected to the Internet can access your Globule server 21 2 3 Source distribution This section is intended for people with some experience in compiling programs Compilation from source allows you to make the best match with your system tune the installation and allows for special demands This is especially suited for package builders and somewhat experienced system administrators To compile Globule under Windows you will have to contact us Before starting to build Globule from source you have to check the requirements and determine whether your installation needs to do DNS based redirection First determine if you might want to do DNS redirection DNS redirection allows clients to be redirected at the DNS level to one of the available replica servers see Section 3 3 for more infor mation on HTTP vs DNS redirection This is the fastest more distributed and most transparent redirection method available It does however require Globule and Apache to act as an DNS server which is only possible if you run a slightly modified Apache server which requires recompiling Apache also Other requirements
108. ision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally 88 NO WARRANTY 15 BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE THERE IS NO WARRANTY FOR THE LIBRARY TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE LIBRARY AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU SHOULD THE LIBRARY PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION 16 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES END OF TERMS AND CONDITIONS A 4 GD graphical library The packag
109. it simply means that should a replica server fetch a document copy from the backup it would keep its copy for a given duration before trying to revalidate it from the origin or its replica 38 The configuration for the friend with backup server Listen 8080 ServerName wereld cs vu nl DocumentRoot var www html LoadModule globule_module modules mod_globule so GlobuleAdminURL http wereld cs vu nl 8080 globuleadm NameVirtualHost lt VirtualHost gt ServerName wereld cs vu nl DocumentRoot var www html lt Location worldpages gt GlobuleDefaultReplicationPolicy Ttl GlobuleBackupFor http www revolutionware net tea lt Location gt lt VirtualHost gt 3 2 2 REPLICATING A PARTIAL SITE Globule allows you to easily define parts of your site that should not be replicated The origin server will simply not redirect clients to replica servers but only the the original origin server for the paths selected not to be replicated CGI documents are hard to replicate lt VirtualHost 8333 gt ServerName www revolutionware net 8333 DocumentRoot lt Location gt GlobuleReplicate on GlobuleReplicals GlobuleBackupIs lt Location gt lt Location cgi bin gt GlobuleReplicate off lt Location gt lt VirtualHost gt This instructs Globule to replicate the web site with the URL http www revolutionware net 8333 except the pages that are in the sub path http www revolutionware net
110. ith different host names return a different set of pages You must use name based virtual hosting in most cases even if you only want to host a single site Unless you have multiple IP addresses on your machine and know what you are doing you want name based virtual hosting instead of plain virtual hosting In a name based configuration you should start with the specification of a NameVirtualHost directive Then for each web site with a different hostname to be served define a VirtualHost directive environment These should at least contain a ServerName directive with the web site name and a DocumentRoot directive which specifies where the documents for that web site should come from Be sure that the ServerName directives within the VirtualHost environment are tagged with the port number in the same way as the global ServerName Listen 8333 ServerName world cs vu nl 8333 DocumentRoot var www html NameVirtualHost lt VirtualHost gt ServerName world cs vu nl 8333 DocumentRoot var www html lt VirtualHost gt lt VirtualHost gt ServerName www revolutionware net 8333 DocumentRoot var www www revolutionware net lt VirtualHost gt lt VirtualHost gt ServerName _default_ 8333 DocumentRoot var www html lt VirtualHost gt 31 You must specify a VirtualHost section for the global ServerName too Thus in the example above world cs vu nl nl is first and global ServerName specified and must also be present in
111. ith the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system Such a contradiction means you cannot use both them and the Library together in an executable that you distribute 7 You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities not covered by this License and distribute such a combined library provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted and provided that you do these two things a Accompany the combined library with a copy of the same work based on the Library uncombined with any other library facilities This must be distributed under the terms of the Sections above b Give prominent notice with the combined library of the fact that part of it is a work based on the Library and explaining where to find the accompanying uncombined form of the same work 8 You may not copy modify sublicense link with or distribute the Library except as expressly provided under this License Any attempt otherwise to copy modify sublicense link with or distribute the Library is void and will automatically term
112. l file not if the open is called with an URL 15http www php net manual en install php 3 5 3 MYSQL QUERY CACHING WITH GLOBULE In many cases PHP pages must access a database to produce a result In such setups the simplest setup is to let Globule replicate the PHP code but keep the database centralized This setup often called edge side computing may however prove quite inefficient if the performance bottleneck lies in the database One of Globule s most innovative features allows programmers to design their PHP MySQL applications such that database query results are cached at the replica servers This system can greatly improve the overall system s performance 3 Configuring Globule to cache MySQL query results requires e to update the database related statements in the PHP code e and to update the Apache configuration file of the origin and replica servers Note that this setup currently works only for MySQL databases also the use of backup servers is not supported so no page can be delivered while the central database is unreachable Updating PHP pages To make use of database query caching PHP pages must be edited in the following way e All PHP calls to the MySQL driver in the form of mysql_ must be rewritten as globule_mysql_ Thus for example mysql_connect localhost master must becomes globule_mysql_connect localhost master e After any call that determins the database being used
113. lable also from a backup server Since the operation of a backup server is largely the same as a replica server the configuration follows the same line with three exceptions 5With HTTP redirection this does not do a lot of good as new browsing clients cannot be redirected to the replica servers when the origin is down but this feature will become more valuable with DNS redirection 37 1 instead of using GlobuleReplicals and GlobuleReplicaFor use the directives GlobuleBackupls and GlobuleBackupFor 2 the normal replicas need to define which alternative backup servers there are when the regular origin isn t available which will be done using the specification of a GlobuleBackupForls 3 finally the backup servers need to be told to always keep the documents by specifying a suitable replication policy with the GlobuleDefaultReplicationPolicy directive We will run through the modifications in the origin server and replica server and how the backup server should be configured We assume you have another friend with the machine monde cs vu nl which offers to be your backup server then in your configuration of the origin site add the Glob uleBackupFor directive Your origin server s configuration Listen 80 ServerName world cs vu nl lt VirtualHost gt ServerName www revolutionware net DocumentRoot var www html pages lt Location gt GlobuleReplicate on GlobuleDefaultReplicationPolicy Invalidate GlobuleReplical
114. lare statements should be inserted after any call to the relevant globule mysql_attach statement The above statement declares a named statement myquery where certain parts may be filled in when the query is later executed These yet unspecified formal arguments are denoted with a question mark The query can then be executed where there used to be a call to mysql_query using a call to globule_mysql_execute which instead of using the full query just uses the query name globule_mysql_execute myquery array i The first argument represents the query name and the second argument is an array of all values to be instantiated for the formal argument in the query template as denoted with question marks Configuring Globule for Database Query Caching Now you also need to update the httpd conf configuration files of your origin and replica servers Suppose that before updating your PHP scripts you had the following MySQL connection se quence mysql_connect localhost master mysql_select_db globecbc This would make a contact to the database running on the localhost server using username master and with an empty password using the database globecbc To make this database reachable from the replica servers we need to update the configuration of the origin server such that a HTTP based interface for queries to the database lt VirtualHost gt ServerName origin revolutionware net lt Loca
115. le e 68 5 3 4 GlobuleBGPReloadAfter e e 68 DNS Redir cti taa tt Gadi a BS Bp Pike A A 69 54L sGlobileT Th 2 eee ae bbithaawoee a A dad a 69 54 27 Globe CTERR i e pak es Oo PES Ee a Ee a a 69 5 43 GlobuleTTLAS 4 4 4 400 465 eed de oad be Oem sole ees 69 5 4 4 GlobuleMaxIPCount 0 0 002002 0000000008 69 5 4 5 GlobuleDNSRedirectionAddress 2 ee 70 Periodic tasks i ev ei eRe Re ee ae he ee Ge ae ee Bay 71 5 5 1 GlobuleHeartBeatInterval oo a 71 5 5 2 GlobulePolicyAdaptationInterval o a 71 Obscure and rare settings o a 72 5 6 1 GlobuleAnythingFor 0 0 0 00 e 72 5 6 2 GlobuleMirrorls e 72 5 6 3 GlobuleDisabledReplicals o a 73 5 6 4 GlobuleProxyEFor s o s 40 o a le ae ae aS 73 5 6 5 GlobuleOriginWeight 0 0 00 0 00000000000 73 5 6 6 GlobuleStaticResolv 000000 ee bf Recognized nits tad e a Troubleshooting 6 1 Compatibility with other Apache modules and settings 6 1 1 Modules that won t work o o 0 000000000004 6 1 2 Constructions that won t work 2 0 0 0 000000 0 000004 6 2 System resource usage 2 e 6 2 1 Allow high quantities of shared memory in your operating system 6 2 2 Allow large numbers of locks in your operating system Copyright notices Ail Apache httpd Server isa bt A E
116. le support in PHP If you used the installer without MySQL support then you will be able to use PHP scripts but database drivers will not be compiled Contact us if you need to overcome this If you installed Globule from source read Section 2 3 2 on how to install PHP from source 3 5 2 USING GLOBULE SUPPORT IN PHP Globule will take care of the replication of the PHP source files to replica servers However the PHP programs do have to be modified and provide some additional information to Globule The modifications to the original PHP pages for a Globule environment have to do with telling Globule that one PHP page actually requires another PHP page data file or database entries to be present Globule can then also make sure these are present on the local server and point the PHP page to the right location for the specific replica server The modifications to your PHP pages are e You must add the following line in the first line of all your PHP pages lt PHP eval stripslashes _SERVER GLOBULE_PHPSCRIPT gt e For all instances of the statements require require_once include include_once etcetera wrap the argument in a call to the globule function For example require includedpage php must become require globule includedpage php If you open data files read only you should wrap the first argument representing the filename also in a call to the globule function However do this only if this is a loca
117. liberate and grossly negligent acts or agreed to in writing shall any Contributor be liable to You for damages including any direct indirect special incidental or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work including but not limited to damages for loss of goodwill work stoppage computer failure or malfunction or any and all other commercial damages or losses even if such Contributor has been advised of the possibility of such damages 9 Accepting Warranty or Additional Liability While redistributing the Work or Derivative Works thereof You may choose to offer and charge a fee for acceptance of support warranty indemnity or other liability obligations and or rights consistent with this License However in accepting such obligations You may act only on Your own behalf and on Your sole responsibility not on behalf of any other Contributor and only if You agree to indemnify defend and hold each Contributor harmless for any liability incurred by or claims asserted against such Contributor by reason of your accepting any such warranty or additional liability END OF TERMS AND CONDITIONS APPENDIX How to apply the Apache License to your work To apply the Apache License to your work attach the following boilerplate notice with the fields enclosed by brackets replaced with your own identifying information Don t include the brackets The
118. licaFor http origin revolutionware net sharedpassword lt Location gt lt Location db globecbc gt GlobuleDatabase http origin revolutionware net db globecbc dbsharedpassword lt Location gt There is just a single shared password amongst all replica servers at the current implementation The db globecbc location path can be freely chosen but must match in the origin definition replica definition and PHP script 97 4 Supporting utilities 4 1 GlobuleUtil The globuleutil section is used to convert a report log as found in the htglobule directory of origin web sites into access log files Multiple report log and Apache access log can be merged and sorted on the fly The GlobuleUtil program is discussed in more detail in section 3 4 3 4 2 GlobuleCtl The globulect1 script is installed along with the Globule module It serves the same purpose as the apachectl script used is a default Apache installation but has a number of extensions e In case of a installer based setup it also starts stops any supporting software such as the optional MySQL database e It case when using the Globule Broker Service which generates the Apache httpd conf configuration file for you globulectl stop globulectl start globulectl restart globulectl graceful globulectl configtest globulectl monitorhost logging server globulectl v no serial no restart check 58 5 Configuration Directive Reference 5
119. lies on a number of periodic tasks executed roughly every second e g to check is a given file was modified or if a replica server is still alive These tasks usually perform an internal HTTP request to your own server As a result your logs access_log file will quickly get filled up with records of these internal requests There is enough of them to fill up any hard drive within a matter of days or weeks All internal Globule requests use either the custom created SIGNAL or the REPORT HTTP method To filter these requests out of your log files we recommend that you enter in your httpd conf an equivalent of the following lines 33 SetEnvIf Request_Method SIGNAL dontlog SetEnvIf Request_Method REPORT dontlog CustomLog logs access_log combined env dontlog The order of these statements is relevant In your httpd conf there should already be one or more CustomLog directives where the first should be defined at a global level i e not inside an environment like VirtualHost almost directly after several LogFormats are defined The SetEnvlIf entries should be defined in between these two Then all occurrences of CustomLog should have env dontlog appended to them 3It cannot hurt adding this to all occurrences although it is strictly only needed for Globule sections and the URL specified by GlobuleAdminURL 34 3 2 Site Replication Globule s main feature is to replicate Web sites This section will explain you how to config
120. lobule adds another dimension because it allows tuning of replication and redirection policies and it is a co operative network This means that one explicitly selects partners with which to co operate and replicate documents to and from Globule therefore requires configuration as does Apache Like other modules in Apache this configuration is embedded in the Apache configuration file httpd conf Without configuration Globule Apache can possibly be started but is dysfunctional As Apache configuration can be quite complex to get right This documentation does not handle the configuration of Apache itself nor of any modules which can be used inside Apache Refer to the Apache documentation and follow the guidelines in the sample httpd conf or httpd std conf to get the a working web site first before integrating Globule Globule also provides a sample httpd globule conf that can be renamed to httpd conf which can be used to start your con figuration from This section describes how to prepare a configuration in httpd conf which performs a basic repli cation of a site to other host Separate subsections handle individual subjects and enhancements like Site replication DNS based redirection 1 2 3 System Monitoring 4 Dynamic Content The reference in section 5 describes the directives on an individual basis rather than per subject THE GLOBULE BROKER Setting up a configuration file httpd conf can be quite a difficult pr
121. located in the same directory as httpd and apachectl configure with apxs weird directory bin apxs If you want to use DNS redirection then you must add the enable dns redirection flag to configure configure with apache usr local globule enable dns redirection We also recommend to use the enable globuleadm flag This installs a set of files in the directory globuleadm inside the directory as indicated by apxs q htdocsdir which allow you to monitor the operation of Globule Other options available are enable debug Compile Globule with debugging symbols and options enabled enable optimize Use optimization to compile Globule recommended enable profile Compile Globule with profiling enabled not recommended does not work reliably enable documentation Also build and install documentation not recommended read it on line After running the configure script with the appropriate options run make and make in stall This last command will install the Globule software and also install a sample Globule configuration file named httpd globule conf next to the regular httpd conf file in the di rectory as specified by apxs q sysconfdir Use it as an example of how to configure the httpd conf for use with Globule 2 3 3 PHP INSTALLATION FROM SOURCE To compile PHP yourself you must make sure that you instruct PHP with the configure script to use the apxs2filter as the Apache to PHP hand
122. lowing anything for Therefore if you add a VirtualHost and a DocumentRoot which is not yet allowed you need to add a Directory section for it Also if you change a DocumentRoot or ServerRoot directory remember to check all paths in Directory environments Taken the example in the previous paragraph access will only be allowed from a default location for the files being served at http www revolutionware net 8333 if we add to the httpd conf lt Directory var www www revolutionware net gt Options Indexes FollowSymLinks AllowOverride None Order allow deny Allow from all lt Directory gt This configuration snippet should be stated just below a lt Directory gt specification normally present in your configuration but at least before any VirtualHost specification 3 1 3 ADD GLOBULE SUPPORT This subsection describes how add Globule to a working non Globule Apache configuration how ever with no web site being replicated or imported from another origin server Add a LoadModule directive for Globule First Apache must be instructed to use the Globule module by adding a line which loads the module 32 LoadModule globule_module modules mod_globule so This LoadModule directive should be placed below the other already present LoadModule direc tives These normally occur early in the configuration after the MPM specific section Add Directive GlobuleAdminURL Globule will not work unless it has some web address
123. main This file has been ported to APR updated to ANSI C and other newer idioms and added to the Apache codebase under the above copyright and license HR KR KR RR RRR HR KH RRR KR HR KH RK RHR HR KH RRR HR RRR HR KH HK KR HR HR KH HK K For the srclib apr util test testmd4 c component This is derived from material copyright RSA Data Security Inc Their notice is reproduced below in its entirety Copyright C 1990 2 RSA Data Security Inc Created 1990 All rights reserved RSA Data Security Inc makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose It is provided as is without express or implied warranty of any kind These notices must be retained in any copies of any part of this documentation and or software HR KKK HK KR HK KH For the srclib apr util xml expat conftools install sh component install install a program script or datafile This comes from X11R5 mit util scripts install sh Copyright 1991 by the Massachusetts Institute of Technology Permission to use copy modify distribute and sell this software and its documentation for any purpose is hereby granted without fee provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation and that the name of M I T not be used in advertising or publicity pertai
124. me other Free Software Foundation software is covered by the GNU Library General Public License instead You can apply it to your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for this service if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the software or if you modify it For example if you distribute copies of such a program whether gratis or for a fee you must give the recipients all the rights that you have You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two steps 1 copyright the software and 2 offer you this license which gives you legal permission to copy distribute and or modify the software Also for each author s protection and ours we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else
125. mediate ISP DNS server before it has to re ask the same query again The system contains default TTL values for different redirection policies These defaults may be changed using one of the GlobuleTTL directives redirection policy uses TTL as specified by Static or no policy GlobuleTTL RR WRR GlobuleTTL_RR AS BAS GlobuleTTL_AS Lower values will make your site more responsive to changes in the set of available replicas but they will increase the load at your redirectors Attention TTL values below 600 seconds may strongly reduce your redirection efficiency and is considered mal practice on the Internet Or 4 1 GLOBULETTL GlobuleTTL 86400 This sets the TTL value for all DNS responses regarding static sites see GlobuleDefaultRedirect Policy The default value is 86400 seconds i e 1 day 5 4 2 GLOBULETTL_RR GlobuleTTL_RR 1800 This sets the TTL value for all DNS responses regarding round robin sites see GlobuleDefault RedirectPolicy The default value is 1800 seconds i e 30 minutes 5 4 3 GLOBULETTL_AS GlobuleTTL_AS 600 This sets the TTL value for all DNS responses regarding AS based sites see GlobuleDefaultRedi rectPolicy The default value is 600 seconds i e 10 minutes 5 4 4 GLOBULEMAXIPCOUNT GlobuleMaxIPCount 3 69 Upon DNS queries Globule selects a number of IP addresses based on the availability and redi rection policy Depending on availability and policy used the numbe
126. mple if a patent license would not permit royalty free redistribution of the Program by all those who receive copies directly or indirectly through you then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program If any portion of this section is held invalid or unenforceable under any particular circumstance the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces the original copyright holder who places the Program under this License may add an explicit geographical
127. n replica It should be clear that the distinction between origin replica backup and redirector servers refers only to the role that a given server takes with respect to any given site The same server may for example simultaneously act as the origin and one of the redirectors for its owner s site as a backup for a few selected friend s sites as a replica for other sites and as a redirector for yet other sites 1 3 Known issues limitations e Globule only works with Apache version 2 0 x It does not work with Apache version 1 3 x and there is no plan on changing this Apache version 2 1 2 2 is not supported up to and including Globule release 1 3 1 This may change in future releases of Globule 2 Globule Installation Globule adds replication functionality to the Apache web server There are multiple ways to install Globule Apache and additional optional software The normal installation procedure is the all in one package under Unix and Linux see Section 2 1 or the Windows installer see Section 2 2 In a number of special cases it might be preferable to install Globule by other means such as if you want to add replication features to an already existing Apache installation you have a minimalistic system without compilers or you want to rely on installation paths or packaging methodology of your system Section 2 3 explains how to install Globule by hand from source while Section 2 4 explains how to install pre compiled RPMs
128. n use the following units usec usecs microsecond microseconds 005000 of a second msec msecs millisecond milliseconds of a second po 1000 s sec secs second seconds the default seconds m min mins minut minuts for multiple of minuts i e 60 seconds h hour hours for multiple of hours i e 3600 seconds d day days for multiple of 86400 seconds w week weeks for multiple of 604800 seconds a k a weeks Additionally the string never indicating a value of 0 is accepted by some Directives to turn off a certain feature Most directives are specified as a number of seconds therefore any value smaller that that for instance 1millisecond is rounded upwards to 1 second 76 6 Troubleshooting This section handles a number of trouble shooting issues which can cause problems with a correct functioning of Globule and instructions on how to overcome obstables in some cases 6 1 Compatibility with other Apache modules and settings In general Globule is well behaved and follows the Apache interface However some modules or configurations can clash Most incompatibilities with other modules and settings emerge because the same environment as the origin server cannot be emulated on the replica host This section surveys a number of them 6 1 1 MODULES THAT WON T WORK The usage of the following modules will not work when the modules are active on the web site being replicates This means that the modules c
129. net lt lt gt gt DiG 9 2 4 lt lt gt gt origin revolutionware net global options printcmd Got answer gt gt HEADER lt lt opcode QUERY status NOERROR id 50422 flags qr rd ra QUERY 1 ANSWER 1 AUTHORITY 35 QUESTION SECTION origin revolutionware net ANSWER SECTION 430 IN 130 37 199 101 origin revolutionware net AUTHORITY SECTION revolutionware net NS 3 Query time 3 msec 3 SERVER 130 37 20 3 53 130 37 20 3 3 WHEN Thu Nov 10 15 31 30 2005 35 MSG SIZE rcvd 66 1 ADDITIONAL 0 NAME OF YOUR DNS SERVER1 com In the answer section you should see the IP address of your origin server Do the same to test the name replica revolutionware net Now let s test if the redirector is correctly registered dig t NS www revolutionware net 44 lt lt gt gt DiG 9 2 4 lt lt gt gt t NS www revolutionware net global options printcmd Got answer gt gt HEADER lt lt opcode QUERY status NOERROR id 55825 flags qr rd QUERY 1 ANSWER O AUTHORITY 1 ADDITIONAL O 33 QUESTION SECTION j www revolutionware net 3 AUTHORITY SECTION www revolutionware net 600 IN NS origin revolutionware net 3 Query time O msec 3 SERVER 130 37 193 66 53 goupil 35 WHEN Thu Nov 10 15 34 50 2005 33 MSG SIZE rcvd 62 The authority section should contain a line ending up with NS origin revolutionware net Finally let s test if the DNS
130. ning to distribution of the software without specific written prior permission M I T makes no representations about the suitability of this software for any purpose It is provided as is without express or implied warranty Rasa sa EE For the srclib pcre install sh component Copyright 1991 by the Massachusetts Institute of Technology Permission to use copy modify distribute and sell this software and its documentation for any purpose is hereby granted without fee provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation and that the name of M I T not be used in advertising or publicity pertaining to distribution of the software without specific written prior permission M I T makes no representations about the suitability of this software for any purpose It is provided as is without express or implied warranty Rasa sn o For the pcre component PCRE LICENCE PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language Written by Philip Hazel lt phi0 cam ac uk gt University of Cambridge Computing Service Cambridge England Phone 44 1223 334714 Copyright c 1997 2001 University of Cambridge Permission is granted to anyone to use this software for any purpose on any computer system and to redistribute it
131. nition control means i the power direct or indirect to cause the direction or management of such entity whether by contract or otherwise or ii ownership of fifty percent 50 or more of the outstanding shares or iii beneficial ownership of such entity You or Your shall mean an individual or Legal Entity exercising permissions granted by this License Source form shall mean the preferred form for making modifications including but not limited to software source code documentation source and configuration files Object form shall mean any form resulting from mechanical transformation or translation of a Source form including but not limited to compiled object code generated documentation and conversions to other media types Work shall mean the work of authorship whether in Source or Object form made available under the License as indicated by a copyright notice that is included in or attached to the work an example is provided in the Appendix below Derivative Works shall mean any work whether in Source or Object form that is based on or derived from the Work and for which the editorial revisions annotations elaborations or other modifications represent as a whole an original work of authorship For the purposes of this License Derivative Works shall not include works that remain separable from or merely link or bind by name to the interfaces of the Work and Derivative Works thereof
132. ns no derivative of any portion of the Library but is designed to work with the Library by being compiled or linked with it is called a work that uses the Library Such a work in isolation is not a derivative work of the Library and therefore falls outside the scope of this License However linking a work that uses the Library with the Library creates an executable that is a derivative of the Library because it contains portions of the Library rather than a work that uses the library The executable is therefore covered by this License Section 6 states terms for distribution of such executables When a work that uses the Library uses material from a header file that is part of the Library the object code for the work may be a derivative work of the Library even though the source code is not Whether this is true is especially significant if the work can be linked without the Library or if the work is itself a library The threshold for this to be true is not precisely defined by law If such an object file uses only numerical parameters data structure layouts and accessors and small macros and small inline functions ten lines or less in length then the use of the object file is unrestricted regardless of whether it is legally a derivative work Executables containing this object code plus portions of the Library will still fall under Section 6 Otherwise if the work is a derivative of the Library you may distribute
133. nware net In a non replicated setup the browser would always receive the IP address of the server to contact Using DNS redirection the DNS redirector will check where the client is located and return the IP address of the most suitable server out of the available replica servers for the site IP addresses are usually not shown to the users so DNS redirection is invisible to them DNS redirection imposes a few restrictions Redirection can only be realized for a Web site as a whole so everything from the location It is impossible to replicate only a part of a site All servers taking part in the replication of the Web site must run on the same port number e Running a DNS redirector requires that Apache is started as root e You must control the DNS domain inside which you want to run your web site For example if you want to have your site available under the URL http www revolutionware net then you must own the domain revolutionware net If you do not already own a domain then any registrar will let you register one for a modest yearly fee for the com net and org and some more top levels Other top levels such as n1 are available through local registrars Alternatively if one of your friends already owns a DNS domain for instance revolutionware net then she may delegate a sub domain for instance berry revolutionware net to you so that you can for example create a site called http www berry revolutionware net or
134. ocess Order in which direc tives are specified matters their semantical nesting must be precise when to add port numbers and many other common tasks Globule adds another dimension to managing the httpd conf since the configuration of one server which is the origin of exported documents is linked to replica servers which import the documents The locations shared secrets and settings need to match between servers To aid users in setting up httpd conf configuration files for their servers and set up relationships between origin sites and friendly replica servers we have created a web site which e brokers between potential replica servers and your origin server e generates a complete and working httpd conf configuration file based on all your settings This web site is the Globule Broker Service GBS Globule users are able to register their servers to select on which server s their sites should be replicated how redirection should be performed etc As an added feature Globule will provide a set of servers ready to replicate its users sites as well as a public redirection service The GBS can be found at http www globeworld net Note however that its features are currently quite limited A redesign of the GBS is on its way 28 3 1 Basic Server Configuration Globule is provided as a module for Apache This requires that you have to let Apache know that you will be needing the Globule module Such instructions as well as othe
135. of the Library is restricted in certain countries either by patents or by copyrighted interfaces the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries 87 so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written in the body of this License 13 The Free Software Foundation may publish revised and or new versions of the Lesser General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later version you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number you may choose any version ever published by the Free Software Foundation 14 If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these write to the author to ask for permission For software which is copyrighted by the Free Software Foundation write to the Free Software Foundation we sometimes make exceptions for this Our dec
136. of the site operation such that an optimum performance can be reached 6 Gather statistical information about the visitors of the web site for external purposes such as generating a report for marketing 7 Have fun watching the server doing its work otherwise a background task like a web server is a nearly invisible entity To address these needs Globule has an interface for these forms of monitoring controls 1 log a history of regular operations web page accesses in this case 2 view and modify tunable parameters view the current state gt view a history of exceptional events such as errors warnings but also for instance increases in resource usage Apache itself provides two logging files which provide some means of monitoring One is the access log which contains a listing of all URLs which have been requested from the web site The other logging file is the error log which contains error messages ranging in severity from critical through normal warnings and informational messages The amount of current state that can be monitored is very minimal only server info and server status module provide some information and are rarely used The access and error log contain only a bit of monitoring data which is also unstructured and limited in information Therefore Globule also provides monitoring information which is more suited for a distributed setup is extendible and has more advantages It is however very useful to
137. off and that safe mode is enabled If you install Apache in a non default path using the prefix option make sure the PHP is actually configured to use the right installation of Apache You should be very aware that the PHP pages will be executed on multiple servers PHP is compiled with certain extensions depending on how it was configured If you make your PHP pages depend on a certain set of extensions then all replica servers should have the same set of extensions For this reason the all in one installer and Globule Broker System are preferred The recommended configuration for compilation of PHP is configure prefix prefix with apxs2filter prefiz bin apxs disable cgi disable static enable safe mode enable dba with dbase with gdbm 24 with db4 with ini with flatfile with gd enable ftp with mysql with mysqli bin mysql_config Where prefiz is the base installation path of Apache and are the paths to the individual software packages being referred to which default to prefix for the use with the all in one installer When compiling and installing PHP it will modify your existing httpd conf to add directives to enable PHP parsing This may not completely be what you want so save a copy of the original httpd conf before your type make install To add or check whether your PHP is available from within the Apache server add the following directives at their proper position in th
138. ogram is not restricted and the output from the Program is covered only if its contents constitute a work based on the Program independent of having been made by running the Program Whether that is true depends on what the Program does 1 You may copy and distribute verbatim copies of the Program s source code as you receive it in any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty keep intact all the notices that refer to this License and to the absence of any warranty and give any other recipients of the Program a copy of this License along with the Program You may charge a fee for the physical act of transferring a copy and you may at your option offer warranty protection in exchange for a fee 2 You may modify your copy or copies of the Program or any portion of it thus forming a work based on the Program and copy and distribute such modifications or work under the terms of Section 1 above provided that you also meet all of these conditions a You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change 90 b You must cause any work that you distribute or publish that in whole or in part contains or is derived from the Program or any part thereof to be licensed as a whole at no charge to all third parties under the terms of this License c If the modified program n
139. omain socket The password part is optional if left out an empty password is used The shared password secret should be match between origin and all replica servers to shield the usage of the database interface by non authorized users Only access to the defined database is given not other databases on the database server If multiple databases are to be accessed each one should use a GlobuleDatabase definition 66 5 3 Redirection Directives For an introduction to redirection in Globule please read section 3 3 5 3 1 GLOBULEREDIRECTIONMODE GlobuleRedirectionMode OFF HTTP DNS BOTH The GlobuleRedirectionMode directive defines which redirection mechanism should be used by a server OFF disables redirection e HTTP activates HTTP based redirection 302 Moved DNS activates internal DNS server requires access to port 53 so you probably must have administrator privileges e BOTH activates both HTTP and DNS redirection modes GlobuleRedirectionMode must be defined before any exported or imported sections in your con figuration If any of the exported sections want to use DNS redirection then you must enable DNS redirection at a global level The individual sections can then override to use HTTP redirection only To use DNS redirection you must use our patched version of Apache so that it can handle UDP requests Instructions on how to do that are available in Section 2 The default value is HTTP 5 3 2 GLOBULEDE
140. on the settings of your web server the outage of replica and origin servers and the GlobuleHeartBeatInterval interval globuleutil usage globuleutil v f combined common w seconds p prefiz filel Output help information u 50 Increases the verbosity of information such as the input file format detected resources and interval window used etcetera Multiple options v increase the verbosity level fformat or format format Where format it either common or combined specifies in which Apache log style to output the result Only the common a k a CLF file format is standardized but the combined log file is an often used Apache file format pprefiz or prefiz prefix Prepend the path prefix before each URL The URIs in the report log files are relative to the path imported or exported from Full URLs are not used as the initial path can be different on the replica servers and origin server in case of HTTP redirection Therefore you often want to prepend the path from which the documents are being exported equal to the path in the Location directive in which the GlobuleReplicate on resides For DNS redirection this would be which is the default w seconds or lookahead window seconds Specifies the window by of time by which items in any input file may be unsorted 3 4 4 WEBALIZER MONITORING AND THE INSTALLER SETUP If you have chosen for the installer procedure to install Globule it will
141. one of the VirtualHost environments as in the first in the examples Note that because the global ServerName and the first VirtualHost name ServerName are the same the DocumentRoot should be the same too The last VirtualHost section in the example catches all incoming requests that don t resolve to any of the VirtualHost It is common for this section to have the same DocumentRoot as the global DocumentRoot but this is possible only if this site is not partial replicated If now or in future you will add ServerAlias directives then take note that you shouldn t add the port number when specifying aliases for your hosts For each VirtualHost with a new DocumentRoot you should also check whether the files are acces sible both by having world accessible permission bits when running the server on an Unix machine and because the server program is allowed through it s configuration Within the httpd conf ac cess is allowed or denied through the specification of Directory directives see the next paragraph and the Apache documentation Directory specifications Whenever Apache serves a document locating and authorizing the file to be served goes through several stages The DocumentRoot specifies the initial location Location directives specify how to treat individual paths but whether an actual file may be accessed is controlled by a lt Directory gt directive environment A default configuration will always deny access to all files by disal
142. ormally reads commands interactively when run you must cause it when started running for such interactive use in the most ordinary way to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty or else saying that you provide a warranty and that users may redistribute the program under these conditions and telling the user how to view a copy of this License Exception if the Program itself is interactive but does not normally print such an announcement your work based on the Program is not required to print an announcement These requirements apply to the modified work as a whole If identifiable sections of that work are not derived from the Program and can be reasonably considered independent and separate works in themselves then this License and its terms do not apply to those sections when you distribute them as separate works But when you distribute the same sections as part of a whole which is a work based on the Program the distribution of the whole must be on the terms of this License whose permissions for other licensees extend to the entire whole and thus to each and every part regardless of who wrote it Thus it is not the intent of this section to claim rights or contest your rights to work written entirely by you rather the intent is to exercise the right to control the distribution of derivative or collective works based on the Program In addition mer
143. orrectly running server informational and warning messages generated by Globule may be accessed through the web interface discussed later too but the error log is the only means for Apache Globule to report situations in which the server is failing It therefore should be inspected by the administrator of a web site in case of problems 48 Note that when configuring Apache you may e Denote separate error log files for separate VirtualHost definitions e Use LogLevel to suppress messages having a severity below a certain level Note that the LogLevel directive needs to be defined before ErrorLog directive to take effect this allows overriding the LogLevel for different ErrorLog definitions e Not see any error messages when starting Apache but Apache will still fail to start Therefore you should always inspect the error log There are even instances where Apache will fail to start and no error messages are produced in the error log In these cases you want to check whether the Apache service daemon has started named httpd 3 4 2 MERGED ACCESS LOG A standard installation of Apache provides log files of all successful URL accesses to the server as defined by the CustomLog and or AccessLog directives The format of the AccessLog filename is referred to as a Common Log Format CLF which is a format shared between multiple types of web servers With the CustomLog format you are free to specify the format to be used but most likely you will
144. ould not be replicated to replica servers overriding an earlier defined parent location specification This way you can turn off replication for a sub location and turn it on again for a sub sub location Also replication can be turned off for files matching a given pattern using the Apache lt Files gt and lt FilesMatch gt environment lt Location gt GlobuleReplicate on GlobuleReplicals GlobuleBackupIs GlobuleRedirectorIs lt Location cgi bin gt GlobuleReplicate lt Location gt lt Files pdf gt GlobuleReplicate off lt Files gt lt Location gt In a hierarchy of lt Location gt with GlobuleReplicate set on and off only the parent definition should contain GlobuleReplicals GlobuleBackupIs and or GlobuleRedirectorls directives They are defined for the whole section of locations You cannot overload them in sub locations Note that a location definition using lt Location export gt may mean something different from lt Location export gt The latter is a directory specification which is probably what you want 5 2 2 GLOBULEREPLICAIS GlobuleReplicals http replica full domain p4ssw0rd1 GlobuleReplicals http replica full domain 8333 replicapath p4ssw0rd2 GlobuleReplicals is used at origin servers to specify which servers should act as a replica for the site For each specified replica server it also defines a password which is used for mutual authentication between the origin and the replic
145. pecial plug ins This is usefull to indicate by whom the request was actually served especially when using DNS redirection Not only for diagnostical reasons but also some publicity can be used to indicate on the web page this web site was by For this reason there are three possible type of values this directive recommended to give this directive e either it can be a fully specified URL pointing to some image which has a logo or sorts of the site e it can be a single word identifying the server e it can be an entire text line however without HTML formatting The latter is however not always nicely reported back to the user for all type of display scripts 59 If not specified defaults to the ServerName in effect This directive can be specified at a global level and later overridden on a per globule imported or exported section 5 1 5 GLOBULEMONITOR GlobuleMonitor item filter options Deprecated and ignored use GlobuleDebugProfile instead 5 1 6 GLOBULEDEBUGPROFILE GlobuleDebugProfile defaults normal extended verbose Specifies how verbose the error reporting should be by Globule The defaults setting is now equivalent to the setting normal this default setting does not output much information about its workings and logs only serious error messages You can change this by selecting one of the standard profiles Note that even though the setting may be set to verbose the messages with
146. r configuration directives are written in the Apache configuration file httpd conf Where this file is located depends on the installation you have chosen In this file also directives will be placed that provide instructions to Globule on how to operate Apache is a highly configurable and flexible server This also means that even the basic configura tion without Globule is quite extensive and many details matter Be aware that small configuration changes can have large effects Small omissions presence of other directives or order in which di rectives are placed can result in Apache failing to start misoperation or other unexpected results Some of these effects are even silent and the server either does not start or seems to work but in a different fashion for instance not using replication Therefore take care to follow instructions precisely and make changes at the proper location Look which values you need to change such as adding port numbers setting the ServerName and changing the directory names etcetera Some values like directory names appear multiple times in configuration files be sure they are consistent with each other This section describes how to add the most basic necessary directives to a functional Apache configuration file In subsequent sections is explained how to add further functionality on a per subject basic This manual cannot give an overview on configuring Apache only on the extension Globule provides
147. r of returned addresses is between 0 and count The default is to try to return 3 IP addresses GlobuleMaxIPCount defines how many responses should be returned Note that HTTP redirectors can return only one response so GlobuleMaxIPCount has no effect on them The default value is 3 5 4 5 GLOBULEDNSREDIRECTIONADDRESS GlobuleDNSRedirectionAddress port number GlobuleDNSRedirectionAddress ip address GlobuleDNSRedirectionAddress ip address port number GlobuleDNSRedirectionAddress ip address port number The GlobuleDNSRedirectionAddress directive allows to specify which port the DNS redirector should listen to and or which specific ip address to bind to It serves the same purpose as the standard Apache Listen directive but now for DNS requests This directive is mostly useful for debug purposes as it allows you to test DNS redirection as non root user Note that if you select any port number other than 53 then your redirector will not be accessible to regular clients This directive must be specified before the first RedirectionMode directive 70 5 5 Periodic tasks Globule needs to update its internal state on a periodic basis among others to check for up dated documents whether replica servers are available and if there isn t a more optimal usage of resources Periodic tasks are triggered by a so called heart beat mechanism The following directives allow you to control how fast Globule s heart should beat
148. r own domain name then you probably don t need DNS redirection at all Using DNS redirection requires that you open port 53 in your firewall 15 4 CHOOSE AN INSTALL LOCATION FOR GLOBULE The default installation path is C Program Files Globule if you install as administrator or C Documents and Settings lt username gt Globule otherwise You can change this path if you want Globule installed somewhere else 5 INSTALL APACHE If Apache is not already present in your system then it is going to be installed now Globule 1 3 1 Setup Installing Please wait while Globule is being installed Globule 1 3 1 Setup Click on OK to start the Apache installer You will see the following screens e Apache Welcome Screen click Next to continue e Apache License Agreement if you accept their terms in the license agreement check the top radio button and click Next to continue e Apache Read This First after reading click Next to continue e Apache Server Info Apache will now ask you for information about your web server If you are not sure what to fill in here fill in the values as seen in the screenshot below Later when we generate a configuration file for you Network Domain fill in localdomain Server Name fill in localhost Administrator s Email Address fill in your e mail address or dummyQglobule org Install Apache HTTP Server 2 0 programs and shor
149. ral order of magnitudes within a few minutes or seconds This frequently happens for example when a page is being linked to by Slashdot e Playing with multiple servers is fun Globule is designed as a third party module for the Apache version 2 0 x Web server You will therefore benefit from all great features that made Apache the Number One Server On The Inter net In addition Globule will provide replication functionalities to this server 1 1 Globule Features Globule provides the following features e Replication Web sites or parts thereof can be replicated across multiple servers even if the involved servers do not belong to the same persons e Client redirection Clients accessing the site are automatically redirected to one of the replicas This can be done using HTTP or DNS redirection Moreover Globule supports several policies which allow one to decide to which replica each client should be redirected e Fault tolerance Each Globule server periodically checks the availability of the machines holding its replicas In case one replica site is down or misconfigured it will stop redirecting client requests to this replica until it has recovered Globule also supports the creation of backups of the origin server so that the site will function correctly even if the origin server is down e Monitoring Globule allows administrators to monitor the behavior of their system in three different ways First the logs of requests add
150. redirector works dig origin revolutionware net www revolutionware net 3 lt lt gt gt DiG 9 2 4 lt lt gt gt Corigin revolutionware net www revolutionware net global options printcmd Got answer gt gt HEADER lt lt opcode QUERY status NOERROR id 61015 flags qr aa rd QUERY 1 ANSWER 1 AUTHORITY 1 ADDITIONAL O 33 QUESTION SECTION www revolutionware net 3 ANSWER SECTION www revolutionware net 130 37 199 101 3 AUTHORITY SECTION www revolutionware net IN NS origin revolutionware net 3 Query time 1 msec 3 SERVER 130 37 198 252 53 origin revolutionware net 35 WHEN Thu Nov 10 15 38 04 2005 33 MSG SIZE rcvd 78 In the answer section you should see the IP address of one of your servers Issue the same command several times you should receive a different IP address each time 3 3 6 ADVANCED USAGE Using a backup server A backup server adds virtually no additional complexity to the setup Like using replica revolutionware net as the DNS name for a plain replica we can use a separate name for a replica which performs the role of a backup server Suppose we add backup revolutionware net to the DNS which is some alias name for a server which will play the role of the backup server Then the origin of www revolutionware net will declare 45 Origin server s configuration ServerName origin revolutionware net ServerAlias www revolutionware net lt Location gt Globule
151. ressed to replicas are transfered back to the origin server to rebuild a global access log Second Globule can attach a cookie with each delivered document containing information on how this request was treated Lastly it is possible to collect internal statistics on the usage pattern and process them using configurable filters e Adaptive replication There are many ways by which a given document can be replicated and document updates can be taken into account Unlike many other systems Globule does not consider that there is one policy that is best in all cases 2 Instead it supports multiple policies and periodically checks for each document which policy is likely to offer best performance When the current policy is not optimal it is automatically replaced with the best one e Dynamic document replication Globule can not only replicate static documents but also scripts that are executed at the server to generate content such as PHP scripts The scripts themselves are replicated and executed on replica servers If a PHP script accesses a MySQL database then Globule can also cache database queries to further optimize performance 3 e Configuration server The Globe Broker System GBS is a web site where Globule users can register meet each other and decide to replicate each other s content Configuration files are automatically generated which saves most users from the need to read most of this documentation In addition
152. roup National Center for Supercomputing Applications University of Illinois at Urbana Champaign 605 E Springfield Champaign IL 61820 httpd ncsa uiuc edu Copyright C 1995 Board of Trustees of the University of Illinois ERA FRA talalb balla lalalala lalalala cok ack md5 c NCSA HTTPd code which uses the md5c c RSA Code Original Code Copyright C 1994 Jeff Hostetler Spyglass Inc Portions of Content MD5 code Copyright C 1993 1994 by Carnegie Mellon University see Copyright below Portions of Content MD5 code Copyright C 1991 Bell Communications Research Inc Bellcore see Copyright below Portions extracted from mpack John G Myers jgm cmu edu Content MD5 Code contributed by Martin Hamilton martinCnet lut ac uk these portions extracted from mpack John G Myers jgm cmu edu C Copyright 1993 1994 by Carnegie Mellon University All Rights Reserved Permission to use copy modify distribute and sell this software and its documentation for any purpose is hereby granted without fee provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation and that the name of Carnegie Mellon University not be used in advertising or publicity pertaining to distribution of the software without specific written prior permission Carnegie Mellon University makes no representat
153. s http wereld cs vu nl 8080 worldpages coffee GlobuleBackupIs http monde cs vu nl 8333 worldpages tea lt Location gt lt VirtualHost gt Clearly backup servers are almost the same as regular replica servers for the redirector The main change is that all regular replica servers need to be explicitly told there is a redirector available for this site Configuration for Friend with regular replica Listen 8080 ServerName wereld cs vu nl lt VirtualHost gt ServerName wereld cs vu nl DocumentRoot var www html lt Location worldpages gt GlobuleReplicaFor http www revolutionware net coffee GlobuleBackupForls http www revolutionware net http monde cs vu nl 8333 worldpages lt Location gt lt VirtualHost gt Note that the usage of the GlobuleBackupForls is with two arguments first arguments specifies for which site we are defining a backup GlobuleBackupForls the second argument specifies who the backup server is GlobuleBackupForIs No password needs to be defined the first argument must always be the same as specified in GlobuleReplicaFor Finally the backup server of your other friend needs to setup his configuration which is almost the same as setting up a replica but you should also add a GlobuleDefaultReplicationPolicy and use GlobuleBackupls GlobuleBackupls 6Note that in the backup server s config below the GlobuleDefaultReplicationPolicy is set to TTL This is the recommended configuration
154. s vu nl at port 5353 to resolve the name www revolutionware net Globule can be instructed to resolve DNS queries on another port as port 53 using the Glob uleDNSRedirectionAddress directive GlobuleDNSRedirectionAddress 5353 The GlobuleDNSRedirectionAddress directive needs to be specified before any GlobuleRedirec tionMode directive 3 4 System Monitoring Globule is more complex than a regular Apache server As it is inherently distributed information about it is spread over multiple machines which bare complex relationships One of the goals of Globule is performance and reliability increase but evaluation is less straight forward because of the distributed system In case of unexpected behaviour the cause of this is harder to trace Globule has a monitoring framework which allows to gain more insight behaviour of a Globule replicates web site Typically an administrator wants to monitor a running service which we define as the ability to 1 Find the reason behind any current fault or apparent incorrect operation such as the inability of Globule to use a replica server and redirect to it 2 View the impending failure whether the server is becoming overloaded or other exceptional information 3 Record resource usage for accounting purposes 4 Use resource usage and visit rate to evaluate how well the web server performs Specifically view the benefits the benefits Globule brings 5 Interact with the tunable parameter
155. server Once the installation is completed your server will be ready to operate using a few example documents To host your own documents you will have to defined how and where to replicate parts of your web server Section 3 describes how to configure your web server The configuration of the web server is stored for this all in one installer in the file basedir etc httpd conf Other configuration files are all located in that same directory UPGRADING YOUR INSTALLATION The installer script can be used to upgrade the complete installation including supporting soft ware at later times to the most recent release To this end when the installer script finishes a modified copy of the installer script is created as basedir src installer sh This script not the original should be used to upgrade and should be run with the same flags as earlier If in the initial installation the flag keep build was used non updated software packages will be reused in the installation because intermediate files are kept This limits the time needed to upgrade at the cost of a some extra disk space Subsection 2 1 states some more flags and checks that can be made on the system which are only needed in advanced setups Be aware however that during upgrading the script will remove certain directories and files from the basedir Only htdocs htbin and directories with dots in them are kept untouched Directories src etc and var are largely kept as is Other
156. ssed to the browser Globule also provides solutions for executing these web applications distributively Globule enables the replication of dynamic content based on PHP scripts without any structural changes of the content It works in the following way e It replicates the sources used to generate dynamic content rather than replicating the gen erated content e It recursively fetches other resources required by the script being interpreted to make them available at replica servers This is a much more advanced method of replication than mirrors or caching proxies and much easier to convert to than complicated distributed environments However there are some limita tions of the current implementation of dynamic content replication e It only works for PHP scripts Other dynamic document generation techniques such as Perl and servlets are not supported e Scripts which must undergo some small changes e It does not support the usage of backup servers to replicate data at this time e PHP must be configured in safe mode and references to resources should be relative and within the exported URL path e Changes to plain data files are currently not send back to the origin server this may be improved in future releases e It only supports access to the most common functions of the MySQL style database interface in PHP To get replication of dynamic content operational you need to e compile and add PHP support to Apache e instr
157. st Algorithm in all material mentioning or referencing the derived work RSA Data Security Inc makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose It is provided as is without express or implied warranty of any kind These notices must be retained in any copies of any part of this documentation and or software HR RK RR KR HR HR KR HR KH RH KEK HH For the srclib apr util test testdbm c component The Apache Software License Version 1 1 Copyright c 2000 2002 The Apache Software Foundation All rights reserved Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer 2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution 3 The end user documentation included with the redistribution if any must include the following acknowledgment This product includes software developed by the Apache Software Foundation http www apache org Alternately this acknowledgment may appear in the software itself if and wherever such third party acknowledgments normally
158. tcuts for Choose for All Users on Port 80 as a Service Recommended 16 TA Apache HTTP Server 2 0 Installation Wizard Server Information Please enter your server s information Network Domain e g somenet com Server Name e g www somenet com localhost localdomain Administrator s Email Address e g webmaster somenet com fberry cs vu nl Install Apache HTTP Server 2 0 programs and shortcuts for e for All Users on Port 80 as a Service Recommended C only for the Current User on Port 8080 when started Manually lt Back Cancel e Apache Setup Type Choose the Typical setup type Then click Next to continue Please wait while Globule is being installed Apache HTTP Server 2 0 Installation Wizard Setup Type Choose the setup type that best suits your needs Please select a setup type Typical E Typical program features will be installed Headers and Libraries For compiling modules will not be installed Custom Choose which program features you want installed and where they will be installed Recommended for advanced users InstallShield lt Back Cancel e Destination Folder choose a location where Apache is going to be installed then click Next to continue e Ready to Install the Program click Install to start the installation of Apache e Installation Completed if all went well Apache sho
159. te sublicense and or sell copies of the Software and to permit persons to whom the Software is furnished to do so subject to the following conditions The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software THE SOFTWARE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM DAMAGES OR OTHER LIABILITY WHETHER IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE 84 A 2 PHP scripting language The packaged PHP version 5 0 5 or similar version is governed with the following copyright notice The PHP License Version 3 0 Copyright c 1999 2003 The PHP Group All rights reserved Redistribution and use in source and binary forms with or without modification is permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer 2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution 3 The nam
160. ted into a access log The report log format is completely different than apache style log files because this report log contains much more information than just requests and has fields which are more suitable for a distributed environment than the traditional access log formats such as common and combined log formats To aid future development the report log is not a strict format but instead is a free format file with limited rules on how to separate records of requests and other relevant data and the fields of data inside a record It does not describe which fields in which order should be present The report log is a series of unstructured records of events Each record is contained on a single line Lines which start with a hash sign should be ignored and can be used for comments Each line contains one or multiple fields with data Fields are in principle separated with one or multiple spaced or tabs A field is either a single letter used in the report log to identify different type of events or is a key value pair Key and value are seperated with either a equal sign a colon or semi colon The different separators serve different purposes Used to separate a key from a value where the value can only be a number These numbers should bare some relation to each other For instance identifiers in principle bear no relation to each other as two persons with ID 3 and one with ID 5 have no logical personal bonds with each o
161. terval must precede the declaration of a GlobulePolicyAdaptationInterv Replication policies should not be re evaluated too often because otherwise the choices will be based on very few information This will lead to sub optimal performance On the other hand if it is set too high then your system will take a long time to react to a change in access patterns The argument is in seconds or can be suffixed with an appropriate denominator Specifying a GlobulePolicyAdaptationInterval value of 0 means that policies should never be adapted The default is 1200 seconds 20 minutes 71 5 6 Obscure and rare settings 5 6 1 GLOBULEANYTHINGFOR GlobuleAnythingFor url secret With this directive you can declare that your server can be a replica for any other server without going into a co operative agreementship The shared password named secret is in fact not used in this case nor is the specified url These are currently place holders for the further use of this directive to use a common third party broker Currently this directive should just be used as such ServerName world cs vu nl lt Location gt GlobuleAnythingFor http localhost geheim lt Location gt While an origin server should specify to use the replica for everyone server as ServerName wereld cs vu nl lt Location gt GlobuleReplicate on GlobuleReplicals http world cs vu nl http wereld cs vu nl geheim lt Location gt Note that e
162. text should be enclosed in the appropriate comment syntax for the file format We also recommend that a file or class name and description of purpose be included on the same printed page as the copyright notice for easier identification within third party archives Copyright yyyy name of copyright owner Licensed under the Apache License Version 2 0 the License you may not use this file except in compliance with the License You may obtain a copy of the License at http www apache org licenses LICENSE 2 0 Unless required by applicable law or agreed to in writing software distributed under the License is distributed on an AS IS BASIS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied See the License for the specific language governing permissions and limitations under the License APACHE HTTP SERVER SUBCOMPONENTS The Apache HTTP Server includes a number of subcomponents with separate copyright notices and license terms Your use of the source code for the these subcomponents is subject to the terms and conditions of the following licenses For the mod_mime_magic component VES mod_mime_magic MIME type lookup via file magic numbers Copyright c 1996 1997 Cisco Systems Inc This software was submitted by Cisco Systems to the Apache Group in July 1997 acknowledge Cisco Systems as the original contributor of this module All other licensing and usage conditions are those of the Apache Group
163. that you distribute or publish that in whole or in part contains or is derived from the Program or any part thereof to be licensed as a whole at no charge to all third parties under the terms of this License c If the modified program normally reads commands interactively when run you must cause it when started running for such interactive use in the most ordinary way to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty or else saying that you provide a warranty and that users may redistribute the program under these conditions and telling the user how to view a copy of this License Exception if the Program itself is interactive but does not normally print such an announcement your work based on the Program is not required to print an announcement These requirements apply to the modified work as a whole If identifiable sections of that work are not derived from the Program and can be reasonably considered independent and separate works in themselves then this License and its terms do not apply to those sections when you distribute them as separate works But when you distribute the same sections as part of a whole which is a work based on the Program the distribution of the whole must be on the terms of this License whose permissions for other licensees extend to the entire whole and thus to each and every part regardless of who wrote it Thus it is not the
164. the object code for the work under the terms of Section 6 Any executables containing that work also fall under Section 6 whether or not they are linked directly with the Library itself 6 As an exception to the Sections above you may also combine or link a work that uses the Library with the Library to produce a work containing portions of the Library and distribute that work under terms of your choice provided that the terms permit modification of the work for the customer s own use and reverse engineering for debugging such modifications You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License You must supply a copy of this License If the work during execution displays copyright notices you must include the copyright notice for the Library among them as well as a reference directing the user to the copy of this License Also you must do one of these things a Accompany the work with the complete corresponding machine readable source code for the Library including whatever changes were used in the work which must be distributed under Sections 1 and 2 above and if the work is an executable linked with the Library with the complete machine readable work that uses the Library as object code and or source code so that the user can modify the Library and then relink to produce a modified executable containing the modified Library It
165. ther not can you induce that there should also be a person with ID 4 However a timestamp would be suitable to use with this as there is a logical enumeration of time The semi colon is a general key value pair seperator where the value field should not be interpreted as a number but as some identifier Normally there is a limited amount of possible values for a certain key in the report log In other words you should not expect to see generic text but only keywords or identifiers as values in a semi colon field The colon field serves the same purpose as the semi colon separator but the colon can only be used as the last key value pair and the value in that comes after the colon may contain spaces and or tabs The following event types can be in the report log R a document has been requested by some browsing user U a document update has been detected I the document has been invalidated A to indicate that the policy of a document has changed 94 E to indicate that a document has been evicted from the cache The following fields can be expected t The timestamp when the event occured path The path component of a URL starting without the initial location from which it was exported or imported old The previous replication policy that has been used new The new replication policy to be used on a document lastmod A timestamp with the last modification time of the document docsize The new document size
166. through which it can talk to itself This schizophrenic notion is necessary because Apache isn t a single program but when started Apache splits off in multiple processes A reserved URL lets Globule do it s internal book keeping Using the GlobuleAdminURL directive you can provide Globule with a URL into your web server that can freely be used by Globule A good choice for the site name is the first global ServerName that appears is your configura tion and use a path like globuleadm Following the earlier examples this would result in the specification of GlobuleAdminURL http world cs vu nl 8333 globuleadm Note that e The URL that you provide must be fully qualified path including the http and hostname and port part for which the global ServerName is a good choice e Any path you will give like in the example globuleadm will do e The GlobuleAdminURL must end with a slash e The address to which the URL points should not contain any actual content nor any sub path of it It should also not be replicated This with the exception of the supporting files for the monitoring see section 3 4 These files must be actually installed at the filesystem location pointed to by the GlobuleAdminURL The GlobuleAdminUrl directive is normally placed directly after the global DocumentRoot and at least below the first global ServerName and Globule s LoadModule directive Prevent unwanted entries in your access log Globule re
167. tion gt GlobuleReplicate on GlobuleReplicals http replica revolutionware net sharedpassword lt Location gt lt Location db globecbc gt GlobuleDatabase mysql master localhost globecbc dbsharedpassword 56 lt Location gt The database identified by the URL mysql master localhost globecbc indicates the same identification as used in the mysql_connect and mysql select_db call If the password to the database would not be empty then use a hash sign after the username in the URL as is the standard format for URLs e g mysql masterttpasswordOlocalhost globecbc The password dbsharedpassword does not represent database password but a password that each replica server must know to be allowed to issue requests to the database through the origin server Now replica servers can access your database via the URL http origin revolutionware net db globecbc The path db globecbc must be the same as specified in the globule mysql_reattach statements of your PHP scripts If your scripts use multiple databases then you can repeat this with different names Make sure the same name is not used twice for different databases Replica servers should define a similar connection under the same path However instead of specifying the URL with the actual MySQL database the URL of the HTTP interface of the origin server is specified as such lt VirtualHost gt ServerName replica revolutionware net lt Location gt GlobuleRep
168. tive use of gd If you have questions ask Derived works includes all programs that utilize the library Credit must be given in user accessible documentation This software is provided AS IS The copyright holders disclaim all warranties either express or implied including but not limited to implied warranties of merchantability and fitness for a particular purpose with respect to this code and accompanying documentation Although their code does not appear in gd the authors wish to thank David Koblas David Rowley and Hutchison Avenue Software Corporation for their prior contributions A 5 Webalizer web log report generator The packaged Webalizer version 2 01 10 or similar version is governed with the following copyright notice GNU GENERAL PUBLIC LICENSE Version 2 June 1991 Copyright C 1989 1991 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The licenses for most software are designed to take away your freedom to share and change it By contrast the GNU General Public License is intended to guarantee your freedom to share and change free software to make sure the software is free for all its users This General Public License applies to most of the Free Software Foundation s software and to any other program whose authors commit to using it So
169. tl stop src installer sh keep build omit build bin globulectl start 14 2 2 Windows installation 1 REQUIREMENTS This explanation assumes that you are using Windows XP with SP2 If possible please install Apache and Globule with administrator privileges You will need to open ports in your firewall and only Administrators can do that 2 RUN THE AUTOMATED INSTALLER The Windows auto installer for Globule is available as globule 1 3 1 exe It contains a full distri bution of Apache so you don t need to install Apache separately 3 CHOOSE WHICH COMPONENTS TO INSTALL Globule 1 3 1 Setup Choose Components Choose which features of Globule you want to install oO DNS Redirection Apache this will install the Apache web server We check if a suitable Apache installation was found If not Apache will be installed It requires port 80 to be opened in your firewall You can tell Windows to open port 80 the first time Apache is started by choosing Unblock in the Windows Security Alert window Globule the Globule software This allows the Apache web server to automatically replicate its documents to other servers keep replicas consistent and to transparently redirect users to the best replica DNS Redirection this is the only option you really have here DNS redirection facility adds support for UDP requests to Apache see Section 3 3 If you don t know what DNS redirection is or you don t own you
170. to copy distribute and or modify the software Also for each author s protection and ours we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else and passed on we want its recipients to know that what they have is not the original so that any problems introduced by others will not reflect on the original authors reputations Finally any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses in effect making the program proprietary To prevent this we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for copying distribution and modification follow GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING DISTRIBUTION AND MODIFICATION 0 This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License The Program below refers to any such program or work and a work based on the Program means either the Program or any derivative work under copyright law that is to say a work containing the Program or a portion of it either verbatim or with modifications and or translated into another language Hereinafter translation is in
171. to share and change free software to make sure the software is free for all its users This General Public License applies to most of the Free Software Foundation s software and to any other program whose authors commit to using it the GNU Library General Public License instead You can apply it to Some other Free Software Foundation software is covered by your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for this service if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the software or if you modify it For example if you distribute copies of such a program whether gratis or for a fee you must give the recipients all the rights that you have You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two steps 1 copyright the software and 2 offer you this license which gives you legal permission
172. to the current features we are currently conducting research on the following topics When research is finished these features will be integrated into Globule e Latency estimation We developed a nifty way to estimate the latency between any pair of nodes in the Internet that is the delay it takes to transfer a bit of information from one machine to the other Instead of sending gazillions of messages between every pair of machines our method is based on a very low number of actual measurements 4 A prototype is running fine but it will take a while before we can integrate it into the Globule distribution e Replica placement Based on latency estimations we are now capable to analyze the location of clients requesting a Web site and derive a set of locations where replica servers should ideally be placed 5 e Flash crowd prediction and pro active management The request rate of a web site can sometimes change drastically within minuts such as when it is being referred in a popular bulletin board such as SlashDot Flash crowds as they are called often jam web servers to the point where they become unusable We are working on techniques to detect the early stages of flash crowds and pro actively replicate the concerned sites such that they can serve every request efficiently 1 1 2 Terminology Globule makes a strong distinction between a site and a server A site is defined as a collection of documents that belong to a given user
173. ublish revised and or new versions of the General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies a version number of this License which applies to it and any later version you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Program does not specify a version number of this License you may choose any version ever published by the Free Software Foundation 10 If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different write to the author to ask for permission For software which is copyrighted by the Free Software Foundation write to the Free Software Foundation we sometimes make exceptions for this Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally NO WARRANTY 11 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCL
174. ubmission of Contributions Unless You explicitly state otherwise any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License without any additional terms or conditions Notwithstanding the above nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions 6 Trademarks This License does not grant permission to use the trade names trademarks service marks or product names of the Licensor except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file 7 Disclaimer of Warranty Unless required by applicable law or agreed to in writing Licensor provides the Work and each Contributor provides its Contributions on an AS IS BASIS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied including without limitation any warranties or conditions of TITLE NON INFRINGEMENT MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License 8 Limitation of Liability In no event and under no legal theory whether in tort including negligence contract or otherwise unless required by applicable law such as de
175. ument your PHP pages to inform Globule about the usage of sub resources and databases e instruct Globule on how to contact the database in the httpd conf configuration file 53 3 5 1 ADDING PHP SUPPORT TO APACHE With PHP the content is generated by an interpreter program which is a separate software which plugs into the Apache server and must therefore be installed and configured too If you used the automatic installer PHP support should be present already and the httpd conf configuration file have PHP enabled If you need to add PHP support or want to check whether PHP is enabled in your configuration this section provides some guidelines on the way Globule expects PHP to be installed Since the addition on PHP support is not directly related to Globule we refer to the official documentation for a full PHP installation reference Basic installation and configuration of PHP is relative simple but since PHP can be installed and configured so diversely be aware that incompatibility can arise when diverting from the expected installation We therefore strongly suggest to use the all in one installation which provides a standard installation The automatic installer and Globule Broker System also provide the right settings in the httpd conf file for usage with Globule If you use the installer and answered Yes to include MySQL support you already have dynamic content support and you can continue with section 3 5 2 on using Globu
176. ure Globule so that documents from a given web site are replicated i e copied across multiple servers and maintained consistent i e updated when the origin version is updated Each Web site must have one origin server which holds the authoritative version of the docu ments It can be replicated across any number of backup servers and replica servers To establish replication from an origin server to a replica server or from an origin server to a backup server both servers need to be configured appropriately 1 The origin server needs to know where its replica backup server is This is done using the GlobuleReplicals or GlobuleBackupls directive 2 The replica backup server needs to know where its origin server is This is done using the GlobuleReplicaFor or GlobuleBackupFor directive 3 Both servers need to authenticate each other by using a shared password i e they both need to know the same password 4 If the same site has one or more backup server and one or more replica server at the same time then replica servers need to know where the backup servers are This is done using the GlobuleBackupForls directive Whenever a browsing user on the Internet surfs to the web site being replicated one of the replica servers or the origin server is selected to handle the request If a replica server is selected the browser is redirected to the replica server The most accessible form of redirection is HTTP redirection HTTP redire
177. use an extension to the CLF known as a combined log format In any case these log file can be global or you can specify a separate access log for individual VirtualHost specifications The default access log produced by Apache is however badly suited within a setup of Globule It namely only logs accesses to this web server Accesses to the same web site but serviced by a replica web server are logged at that other web server This is not the result you would want from an access log as one is not interested in the accesses to this web server but to this web site Globule solves this by merging logs of all requests to all replica web servers serving the same web site Each web server collects data on a per site basis regarding accesses and some other informa tion These partial logs are periodically shipped back based on the interval as specified by the GlobuleHeartBeatInterval directive through the HTTP protocol back to the origin server which appends this to its own information Consequently the accumulation of this data is only partially sorted in time This combined access log not only reports on the bare accesses being made but also some infor mation relevant for a distributed web site setup such as which replica server received the request Because of this a file format such as the CLF is not usable and Globule uses a different format documented in appendix B 1 One can however convert merged access logs from Globule s format into st
178. w revolutionware net GlobuleReplicals http world cs vu nl lt Location gt lt VirtualHost gt Many advantages of Globule are lost in this way therefor it is discouraged to use this directive except for demonstration usage Problems will arise with the translation of links and the replication of dynamic content is not really possible 5 6 5 GLOBULEORIGIN WEIGHT GlobuleOriginWeight weight When redirecting browsing users to one of the available replica servers some redirection policies have be ability to redirect more often to certain replica servers than others Each server is assigned a certain weight servers with a heavier weight are loaded with more requests than others 73 The GlobuleOriginWeight directive assigns a weight to the origin server Optional parameters to GlobuleReplicals assign the weight of each of the replica servers By default the weight of each server is set to 1 The value weight must be an integer ranging from 0 to 32767 The default weight when not specified is 1 The weight parameters determin the spread of the load over the available web servers If the weight of this server is set at n and the sum of all the weights of all available servers is s then the optimal load for this server is taken to be of the number of requests The actual load may vary ServerName origin revolutionware net lt Location gt GlobuleReplicate on GlobuleOriginWeight 1 GlobuleReplicals http replica revolutionware
179. ws that it is successfully installed Click on Finish to continue with the Globule installation 17 6 WHERE WAS APACHE INSTALLED If you installed Apache for Current User only Globule will need to know where Apache was installed Note that this is not the default way of installing Apache but you know what you are doing right Specify the directory where the bin and modules directories are in e g C Documents and Settings lt username gt Apache GrouplApache2 7 STOP EXISTING APACHE SERVICES To be able to install itself Globule will need to stop the Apache server you just installed If you installed Apache in the default way as described above just press OK If you installed Apache yourself with a different service name default is Apache2 please stop the Apache service manually or by using the Apache Service Monitor If you had Apache installed for Current User press CTRL C in the console window where you started Apache Globule 1 3 1 Setup Installing Please wait while Globule is being installed 8 INSTALLATION COMPLETED Congratulations all the software is installed Now Globule needs to be configured to be able to use it Click on Finish to go to a web site which can help you write your configuration file You can also manually edit the Apache configuration file in Apache s conf directory following instructions in section 3 2http www globeworld net 18 Globule 1 3 1 Setup Inst
180. y and use this software is granted provided that it is identified as the RSA Data Security Inc MD5 Message Digest Algorithm in all material mentioning or referencing this software or this function License is also granted to make and use derivative works provided that such works are identified as derived from the RSA Data Security Inc MD5 Message Digest Algorithm in all material mentioning or referencing the derived work RSA Data Security Inc makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose It is provided as is without express or implied warranty of any kind These notices must be retained in any copies of any part of this documentation and or software The apr_md5_encode routine uses much code obtained from the FreeBSD 3 0 MDS crypt function which is licenced as follows THE BEER WARE LICENSE Revision 42 lt phk login dknet dk gt wrote this file As long as you retain this notice you can do whatever you want with this stuff If we meet some day and you think this stuff is worth it you can buy me a beer in return eR OK Poul Henning Kamp For the srclib apr util crypto apr_md4 c component This is derived from material copyright RSA Data Security Inc Their notice is reproduced below in its entirety Copyright C 1991 2 RSA Data Security Inc rights reserved Created 1991 All

Download Pdf Manuals

image

Related Search

Related Contents

EN - User Manual IT - Manuale di istruzioni FR  Manual - Eminent  winsteam user`s manual  Dimensions symboliques et socioculturelles du vieillissement  manual de instrucciones / instalación  Makita BO4557 power sander  

Copyright © All rights reserved.
Failed to retrieve file