ok
Direktori : /proc/thread-self/root/proc/self/root/proc/self/root/usr/local/lsws/docs/ |
Current File : //proc/thread-self/root/proc/self/root/proc/self/root/usr/local/lsws/docs/FCGI_Context.html |
<!DOCTYPE html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>LiteSpeed Web Server Users' Manual - Fast CGI Context</title> <meta name="description" content="LiteSpeed Web Server Users' Manual - Fast CGI Context." /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="robots" content="noindex"> <link rel="shortcut icon" href="img/favicon.ico" /> <link rel="stylesheet" type="text/css" href="css/hdoc.css"> </head> <body> <div class="pagewrapper clearfix"><aside class="sidetree ls-col-1-5"> <figure> <img src="img/lsws_logo.svg" alt="lightspeed web server logo" width="100px"/> </figure> <h2 class="ls-text-thin"> LiteSpeed Web Server <br /> <span class="current"><a href="index.html">Users' Manual</a></span> </h2> <h3 class="ls-text-muted">Version 6.0 — Rev. 23</h3> <hr/> <div> <ul> <li><a href="license.html">License Enterprise</a></li> <li><a href="intro.html">Introduction</a></li> <li><a href="install.html">Installation</a></li> <li> <a href="admin.html">Administration</a> <ul class=" menu level2"> <li><a href="ServerStat_Help.html">Service Manager</a></li> </ul> </li> <li><a href="security.html">Security</a></li> <li> <a href="config.html">Configuration</a> <ul class="level2"> <li><a href="ServGeneral_Help.html">Server General</a></li> <li><a href="ServLog_Help.html">Server Log</a></li> <li><a href="ServTuning_Help.html">Server Tuning</a></li> <li><a href="ServSecurity_Help.html">Server Security</a></li> <li><a href="Cache_Help.html">Page Cache</a></li> <li><a href="PageSpeed_Config.html">PageSpeed Config</a></li> <li><a href="ExtApp_Help.html">External Apps</a></li> <ul class="level3"> <li><a href="External_FCGI.html">Fast CGI App</a></li> <li><a href="External_FCGI_Auth.html">Fast CGI Authorizer</a></li> <li><a href="External_LSAPI.html">LSAPI App</a></li> <li><a href="External_Servlet.html">Servlet Engine</a></li> <li><a href="External_WS.html">Web Server</a></li> <li><a href="External_PL.html">Piped logger</a></li> <li><a href="External_LB.html">Load Balancer</a></li> </ul> <li><a href="ScriptHandler_Help.html">Script Handler</a></li> <li><a href="PHP_Help.html">PHP</a></li> <li><a href="App_Server_Help.html">App Server Settings</a></li> <li><a href="Listeners_General_Help.html">Listener General</a></li> <li><a href="Listeners_SSL_Help.html">Listener SSL</a></li> <li><a href="Templates_Help.html">Virtual Host Templates</a></li> <li><a href="VirtualHosts_Help.html">Virtual Host Basic</a></li> <li><a href="VHGeneral_Help.html">Virtual Host General</a></li> <li><a href="VHSecurity_Help.html">Virtual Host Security</a></li> <li><a href="VHSSL_Help.html">Virtual Host SSL</a></li> <li> <a href="VHPageSpeed_Config.html">Virtual Host PageSpeed Config</a> </li> <li><a href="Rewrite_Help.html">Rewrite</a></li> <li><a href="Context_Help.html">Context</a></li> <ul class="level3"> <li><a href="Static_Context.html">Static Context</a></li> <li> <a href="Java_Web_App_Context.html">Java Web App Context</a> </li> <li><a href="Servlet_Context.html">Servlet Context</a></li> <li><span class="current"><a href="FCGI_Context.html">Fast CGI Context</a></span></li> <li><a href="LSAPI_Context.html">LSAPI Context</a></li> <li><a href="Proxy_Context.html">Proxy Context</a></li> <li><a href="CGI_Context.html">CGI Context</a></li> <li><a href="LB_Context.html">Load Balancer Context</a></li> <li><a href="Redirect_Context.html">Redirect Context</a></li> <li><a href="App_Server_Context.html">App Server Context</a></li> <li><a href="Rails_Context.html">Rack/Rails Context</a></li> </ul> <li><a href="VHAddOns_Help.html">Add-ons</a></li> </ul> </li> <li> <a href="webconsole.html">Web Console</a> <ul class="level2"> <li><a href="AdminGeneral_Help.html">Admin Console General</a></li> <li><a href="AdminSecurity_Help.html">Admin Console Security</a></li> <li> <a href="AdminListeners_General_Help.html"> Admin Listener General </a> </li> <li> <a href="AdminListeners_SSL_Help.html">Admin Listener SSL</a> </li> </ul> </li> </ul> </div> </aside> <article class="contentwrapper ls-col-3-5 clearfix"><div class="nav-bar ls-spacer-micro-top"><div class="prev">« <a href="Servlet_Context.html">Servlet Context</a></div><div class="center"><a href="Context_Help.html">Context</a></div><div class="next"><a href="LSAPI_Context.html">LiteSpeed SAPI Context</a> »</div></div> <h1>Fast CGI Context</h1><h2 id="top">Table of Contents</h2><section class="toc"><section class="toc-row"><header><a href="#fcgiContext">FastCGI Context</a></header><p> <a href="#expuri">URI</a> | <a href="#fcgiapp">FastCGI App</a> | <a href="#extraHeaders">Header Operations</a> | <a href="#allowOverride">Allow Override</a> | <a href="#realm">Realm</a> | <a href="#authName">Authentication Name</a> | <a href="#required">Require (Authorized Users/Groups)</a> | <a href="#accessAllowed">Access Allowed</a> | <a href="#accessDenied">Access Denied</a> | <a href="#extAuthorizer">Authorizer</a> | <a href="#addDefaultCharset">Add Default Charset</a> | <a href="#defaultCharsetCustomized">Customized Default Charset</a> | <a href="#cachePolicy:maxStaleAge">Cache Stale Age (seconds)</a> | <a href="#cachePolicy:enableCache">Publicly Cache All</a> | <a href="#cachePolicy:expireInSeconds">Cache Expire Time (seconds)</a> | <a href="#cachePolicy:enablePrivateCache">Privately Cache All</a> | <a href="#cachePolicy:privateExpireInSeconds">Private Cache Expire Time (seconds)</a> | <a href="#cachePolicy:microCache5xx">Micro Cache 5XX Response</a> | <a href="#cachePolicy:enablePostCache">Enable POST cache</a> | <a href="#enableIpGeo">Enable GeoLocation Lookup</a> | <a href="#pagespeedEnabled">Enable PageSpeed Optimization</a> | <a href="#pagespeedParams">PageSpeed Settings</a></p></section> </section> <section><div class="helpitem"><article class="ls-helpitem"><div><header id="fcgiContext"><h3>FastCGI Context<span class="ls-permlink"><a href="#fcgiContext"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>FastCGI applications cannot be used directly. A FastCGI application must be either configured as a script handler or mapped to a URL through FastCGI context. A FastCGI context will associate a URI with a FastCGI application.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="expuri"><h3>URI<span class="ls-permlink"><a href="#expuri"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies the URI for this context.</p> <h4>Syntax</h4><p>The URI can be a plain URI (starting with "/") or a Perl compatible regular expression URI (starting with "exp:"). If a plain URI ends with a "/", then this context will include all sub-URIs under this URI. If the context maps to a directory on the file system, a trailing "/" must be added.</p> <h4>See Also</h4><p class="ls-text-small"><span class="tagl"><a href="#location">Location</a></span></p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="fcgiapp"><h3>FastCGI App<span class="ls-permlink"><a href="#fcgiapp"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies the name of the FastCGI application. This application must be defined in the <span class="tagP"><a href="#ExtApp_Help">External Apps</a></span> section at the server or virtual host level.</p> <h4>Syntax</h4><p>Select from drop down list</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="extraHeaders"><h3>Header Operations<span class="ls-permlink"><a href="#extraHeaders"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies additional response/request headers to be added. Multiple header directives can be added with one directive per line. "NONE" can be used to disable parent header inheritance. If no directive is provided 'Header' is assumed.</p> <h4>Syntax</h4><p>[Header]|RequestHeader [condition] set|append|merge|add|unset header [value] [early|env=[!]variable]</p> <h4>Example</h4><div class="ls-example">set Cache-control no-cache<br/> append Cache-control no-store<br/> Header set My-header cust_header_val<br/> RequestHeader set My-req-header cust_req_header_val</div><h4>Tips</h4><p><span title="Information" class="ls-icon-info"></span> Syntax and usage are similar to <a href="https://httpd.apache.org/docs/2.2/mod/mod_headers.html#header" target="_blank" rel="noopener noreferrer">Apache's mod_headers directives</a> for supported operations.<br/><br/> <span title="Information" class="ls-icon-info"></span> The 'Header' directive is is optional and can be excluded or left in when copying rules from elsewhere without issue.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="allowOverride"><h3>Allow Override<span class="ls-permlink"><a href="#allowOverride"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies what directives in an access control file are allowed. An access control file can be placed in a directory to control the accessibility of files under that directory.<br/> <ul> <li>When nothing is checked, inherited default settings will be used.</li> <li>When <span class="val">None</span> is checked, access control files will be ignored.</li> <li> When <span class="val">Limit</span> is checked, directives "Allow", "Deny", and "Order" are allowed. <Limit> and <LimitExcept> directives are also allowed with limited support for GET, HEAD, and POST requests. </li> <li> When <span class="val">Auth</span> is checked, directives "AuthGroupFile", "AuthName", "AuthType", "AuthUserFile", "Require", and "Satisfy" are allowed. <Limit> and <LimitExcept> directives are also allowed with limited support for GET, HEAD, and POST requests. </li> <li> When <span class="val">FileInfo</span> is checked, directives "AddDefaultCharset", "AddType", "DefaultType", "ForceType", "Redirect", "RedirectPermanent", "RedirectTemp", "RewriteBase", "RewriteCond", "RewriteEngine", "RewriteOptions", and "RewriteRule" are allowed. </li> <li> When <span class="val">Indexes</span> is checked, directives "DirectoryIndex", "ExpiresActive", "ExpiresByType", and "ExpiresDefault" are allowed. </li> <li>When <span class="val">Options</span> is checked, directive "Options" is allowed.</li> </ul><br/> Allow Override configuration is available at the Server, Virtual Host, and Context levels. If a configuration is unchecked at the Server level, those controlled directives will be disabled for the entire server regardless of settings at lower levels. Lower levels can disable a setting that is enabled at a higher level, but cannot enable a setting that is disabled at an upper level.<br/><br/> Default values:<br/> <b>Server level:</b> "None" (ignore access control file)<br/> <b>VH level:</b> Inherit Server level setting<br/> <b>Context level</b> Inherit VH level setting</p> <h4>Syntax</h4><p>Select from checkbox</p> <h4>Tips</h4><p><span title="Performance" class="ls-icon-performance"></span> If there is no need for directory level configuration customization, check <span class="val">None</span>.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="realm"><h3>Realm<span class="ls-permlink"><a href="#realm"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies the authorization realm for this context. When specified, a valid username and password must be provided in order to access this context. <span class="tagl"><a href="VHSecurity_Help.html#realms">Authorization Realms</a></span> are set up in the <span class="tagP"><a href="#VHSecurity_Help">Virtual Host Security</a></span> section. This setting uses each realm's <span class="tagl"><a href="VHSecurity_Help.html#realmName">Realm Name</a></span>.</p> <h4>Syntax</h4><p>Select from drop down list</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="authName"><h3>Authentication Name<span class="ls-permlink"><a href="#authName"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies an alternative name for the authorization realm for the current context. If not specified, the original realm name will be used. The authentication name is displayed on the browser's login pop-up.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="required"><h3>Require (Authorized Users/Groups)<span class="ls-permlink"><a href="#required"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies which user/group can access this context. This allows you to use one user/group database (specified in <span class="tagl"><a href="#realm">Realm</a></span>) across a number of contexts, but only allow certain users/groups from that database to access this context.</p> <h4>Syntax</h4><p>Syntax is compatible with Apache's Require directive. For example: <ul> <li><span class="val">user username [username ...]</span><br/> Only listed users can access this context.</li> <li> <span class="val">group groupid [groupid ...]</span><br/> Only users belonging to the listed groups can access this context.</li> </ul> If this setting is not specified, all valid users will be allowed to access this resource.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="accessAllowed"><h3>Access Allowed<span class="ls-permlink"><a href="#accessAllowed"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies which IPs or sub-networks are allowed to access resources under this context. Together with <span class="tagl"><a href="#accessDenied">Access Denied</a></span> and server/virtual host level access control, accessibility is determined by the smallest scope that a client's IP address falls into.</p> <h4>Syntax</h4><p>Comma-delimited list of IPs/sub-networks.</p> <h4>Example</h4><div class="ls-example">Sub-networks can be written as <span class="val">192.168.1.0/255.255.255.0</span>, <span class="val">192.168.1</span>, or <span class="val">192.168.1.*</span>.</div></article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="accessDenied"><h3>Access Denied<span class="ls-permlink"><a href="#accessDenied"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies which IPs or sub-networks are NOT allowed to access resources under this context. Together with <span class="tagl"><a href="#accessAllowed">Access Allowed</a></span> and server/virtual host-level access control, accessibility is determined by the smallest scope that a client's IP address falls into.</p> <h4>Syntax</h4><p>Comma-delimited list of IPs/sub-networks.</p> <h4>Example</h4><div class="ls-example">Sub-networks can be written as <span class="val">192.168.1.0/255.255.255.0</span>, <span class="val">192.168.1</span>, or <span class="val">192.168.1.*</span>.</div></article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="extAuthorizer"><h3>Authorizer<span class="ls-permlink"><a href="#extAuthorizer"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies an external application that can be used to generate authorized/unauthorized decisions. Currently, only the FastCGI Authorizer is available. For more details about the FastCGI Authorizer role, please visit <a href=" https://fastcgi-archives.github.io/ " target="_blank" rel="noopener noreferrer"> https://fastcgi-archives.github.io/ </a>.</p> <h4>Syntax</h4><p>Select from drop down list</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="addDefaultCharset"><h3>Add Default Charset<span class="ls-permlink"><a href="#addDefaultCharset"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies whether to add a character set tag to the "Content-Type" response header, when content type is either "text/html" or "text/plain" without any parameters. When set to <span class="val">Off</span>, this function is disabled. When set to <span class="val">On</span>, either the character set specified by <span class="tagl"><a href="#defaultCharsetCustomized">Customized Default Charset</a></span> or the default "iso-8859-1" will be added.</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="defaultCharsetCustomized"><h3>Customized Default Charset<span class="ls-permlink"><a href="#defaultCharsetCustomized"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies a character set to be used when <span class="tagl"><a href="#addDefaultCharset">Add Default Charset</a></span> is <span class="val">On</span>. This is optional. The default value is <span class="val">iso-8859-1</span>. This entry has no effect when <span class="tagl"><a href="#addDefaultCharset">Add Default Charset</a></span> is <span class="val">Off</span>.</p> <h4>Syntax</h4><p>Name of a character set.</p> <h4>Example</h4><div class="ls-example">utf-8</div></article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:maxStaleAge"><h3>Cache Stale Age (seconds)<span class="ls-permlink"><a href="#cachePolicy:maxStaleAge"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies how long an object will continue to be served from cache after it has expired but before a new cached copy is available. The default is "10" seconds.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:enableCache"><h3>Publicly Cache All<span class="ls-permlink"><a href="#cachePolicy:enableCache"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Publicly cache all URLs served under the current context (virtual host, or context level).<br/><br/> Virtual hosts configured through Apache's httpd.conf can use the "CacheEnable" and "CacheDisable" directives at the server, virtual host, context, file, and location level or in .htaccess. "CacheEnable" and "CacheDisable" directives are compatible with Apache mod_cache directives. However, when used at the context, file, or location level, or in .htaccess, "CacheEnable" and "CacheDisable" will only be applied to directories below the current level. URL parameters will be ignored.</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span title="Information" class="ls-icon-info"></span> Disabled by default. Do not enabled this setting if you are using any LSCache plugins.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:expireInSeconds"><h3>Cache Expire Time (seconds)<span class="ls-permlink"><a href="#cachePolicy:expireInSeconds"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies how long an object will be cached. The default is "86400" seconds (one day).</p> <h4>Syntax</h4><p>Integer number</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:enablePrivateCache"><h3>Privately Cache All<span class="ls-permlink"><a href="#cachePolicy:enablePrivateCache"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Privately cache all URLs served under the current context (virtual host, or context level).<br/><br/> A separate cached copy will be made per user based on their IP and set cookies.<br/><br/> Virtual hosts configured through Apache's httpd.conf can use the "CacheEnable private /url" and "CacheDisable private /url" directives at server, virtual host, directory, file, and location levels or in a .htaccess file. "CacheEnable private" and "CacheDisable private" are compatible with Apache's mod_cache directives and will be applied to all directories below the current level. However, when used at the directory, file, or location level, or in a .htaccess file, "CacheEnable private" and "CacheDisable private" will only be applied to directories below the current level. URL parameters will be ignored.</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span title="Information" class="ls-icon-info"></span> Disabled by default. Do not enabled this setting if you are using any LSCache plugins.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:privateExpireInSeconds"><h3>Private Cache Expire Time (seconds)<span class="ls-permlink"><a href="#cachePolicy:privateExpireInSeconds"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies how long an object will be cached in private cache. The default is "60" seconds.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:microCache5xx"><h3>Micro Cache 5XX Response<span class="ls-permlink"><a href="#cachePolicy:microCache5xx"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Cache pages responding with HTTP status code 5xx (500, 503, etc) for 10 seconds when the cache response header indicates that the page is cacheable.<br/><br/> Default values:<br/> <b>Server level:</b> Yes<br/> <b>VH level:</b> Inherit Server level setting<br/> <b>Context-level</b> Inherit VH level setting</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span title="Performance" class="ls-icon-performance"></span> Enabling this setting is useful for avoiding bad requests but can also act as some added DDoS protection.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="cachePolicy:enablePostCache"><h3>Enable POST cache<span class="ls-permlink"><a href="#cachePolicy:enablePostCache"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies if POST requests can be cached using the "x-litespeed-cache-control" header.<br/><br/> Default value: <span class="val">No</span></p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="enableIpGeo"><h3>Enable GeoLocation Lookup<span class="ls-permlink"><a href="#enableIpGeo"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p><span class="tag">Enterprise Edition Only</span> Specifies whether to enable/disable IP Geolocation lookup. Can be set at server, virtual host, or context level. IP Geolocation is disabled by default when using value "Not Set".</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>See Also</h4><p class="ls-text-small"><span class="tagl"><a href="ServGeneral_Help.html#useIpInProxyHeader">Use Client IP in Header</a></span>, <span class="tagl"><a href="ServGeneral_Help.html#geoipDBFile">DB File Path</a></span>,</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="pagespeedEnabled"><h3>Enable PageSpeed Optimization<span class="ls-permlink"><a href="#pagespeedEnabled"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Choose whether or not to enable PageSpeed optimization.</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span title="Information" class="ls-icon-info"></span> This can be set at the Server Level and overridden at the Virtual Host and Context Levels. Context Level settings will override Virtual Host Level settings.</p> </article> </div> <div class="helpitem"><article class="ls-helpitem"><div><header id="pagespeedParams"><h3>PageSpeed Settings<span class="ls-permlink"><a href="#pagespeedParams"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Set parameters using Google default filter sets.</p> <h4>Example</h4><div class="ls-example"><br /> pagespeed FileCachePath /tmp/lshttpd/pagespeed;<br/> pagespeed RewriteLevel CoreFilters;</div></article> </div> </section> </article><div class="ls-col-1-1"><footer class="copyright">Copyright © 2003-2020. <a href="https://www.litespeedtech.com">LiteSpeed Technologies Inc.</a> All rights reserved.</footer> </div></div> </body> </html>