en:user_advanced:gs3_server
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:user_advanced:gs3_server [2016/11/17 00:10] – [Proxying Tomcat with Apache] kjdon | en:user_advanced:gs3_server [2025/06/27 03:00] (current) – [Proxying Tomcat with Apache] kjdon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Advanced Server: Greenstone 3 ====== | ||
| - | ===== Apache Tomcat ===== | + | ====== Greenstone 3 Apache Tomcat  | 
| + | |||
| Tomcat is a servlet container, and Greenstone3 runs as a servlet inside it. | Tomcat is a servlet container, and Greenstone3 runs as a servlet inside it. | ||
| The file '' | The file '' | ||
| Line 17: | Line 18: | ||
| localhost: | localhost: | ||
| - | ==== Starting and Stopping Tomcat ==== | + | ===== Starting and Stopping Tomcat  | 
| Greenstone provides a little server program which will start the Tomcat server and open the library in a browser. See the [[en: | Greenstone provides a little server program which will start the Tomcat server and open the library in a browser. See the [[en: | ||
| Line 23: | Line 24: | ||
| To start tomcat: | To start tomcat: | ||
| - | < | + | < | 
| OR: | OR: | ||
| - | < | + | < | 
| + | $ source ./ | ||
| + | $ ant start</ | ||
| To stop tomcat: | To stop tomcat: | ||
| - | < | + | < | 
| OR: | OR: | ||
| < | < | ||
| To stop and then immediately start up again in one step, use restart: | To stop and then immediately start up again in one step, use restart: | ||
| + | < | ||
| + | OR: | ||
| < | < | ||
| - | ==== Changing Tomcat Port Number ==== | + | ===== Changing Tomcat Port Number  | 
| - | Greenstone sets up Tomcat to run on port 8383 by default. To change this, you can edit the tomcat.port property in build.properties.  | + | Greenstone sets up Tomcat to run on port 8383 by default. To change this, you can edit the tomcat.port property in build.properties.  | 
| - | Alternatively, | + | |
| - | ==== Changing Tomcat settings ==== | + | Alternatively, | 
| - | Don't edit the configuration files in Tomcat directly. Edit the versions in $GSDL3SRCHOME/ | + | |
| - | web.xml (copied to $GSDL3SRCHOME/packages/ | + | |
| - | 'ant configure-tomcat' will copy these files to their correct places, replacing variable placeholders with their correct values. This is done each time Tomcat is restarted  | + | ===== Changing Tomcat settings ===== | 
| + | Don't edit the configuration files in Tomcat directly. Edit the versions in $GSDL3SRCHOME/ | ||
| + |   * greenstone3.xml.in (copied to $GSDL3SRCHOME/ | ||
| + |   * server_tomcat8.xml.in (copied to $GSDL3SRCHOME/ | ||
| + |   * web8.xml.in (copied to $GSDL3SRCHOME/ | ||
| + |   * root_context.xml.in (copied to $GSDL3SRCHOME/ | ||
| + | |||
| + | 'ant configure' | ||
| Note: Tomcat must be shutdown and restarted any time you make changes in the following | Note: Tomcat must be shutdown and restarted any time you make changes in the following | ||
| Line 48: | Line 58: | ||
|   * '' |   * '' | ||
| - |   * '' | + |    | 
| + |    | ||
|   * any classes or jar files used by the servlets  |   * any classes or jar files used by the servlets  | ||
| We have disabled following symlinks for the greenstone servlet.  | We have disabled following symlinks for the greenstone servlet.  | ||
| - | To enable it, edit $GSDL3SRCHOME/ | + | To enable it, edit $GSDL3SRCHOME/ | 
| - | set ’allowLinking’ to true. Restart Tomcat. | + | set ’tomcat.user.allowLinking’ to true. Restart Tomcat. | 
| - | By default,  | + | Tomcat  | 
| - |   | + |   | 
| - | ($GSDL3SRCHOME/ | + | |
| We have set the greenstone context to be reloadable.  | We have set the greenstone context to be reloadable.  | ||
| This means that if a class or resource file in $GSDL3HOME/ | This means that if a class or resource file in $GSDL3HOME/ | ||
|  the servlet will be reloaded. This is useful for development, |  the servlet will be reloaded. This is useful for development, | ||
| - | production mode: set the ’reloadable’ attribute to false in $GSDL3SRCHOME/ | + | production mode: set the ’reloadable’ attribute to false in $GSDL3SRCHOME/ | 
| - | ==== Changing collections or services ==== | + | If you are seeing lots of errors in packages/ | 
| + | < | ||
| + | to the cache for web application [/ | ||
| + | insufficient free space available after evicting expired cache entries</ | ||
| + | |||
| + | ==== Using Greenstone inside a frame ==== | ||
| + | |||
| + | Greenstone' | ||
| + | From April 2024, we use a newer version of Tomcat (8.5.99) instead of 8.5.51. This has the ability to set partitioned for cookies. | ||
| + | This feature is available in Greenstone 3.12 and later. | ||
| + | Edit resources/ | ||
| + | < | ||
| + | <!-- if greenstone is to be run in an iframe, need to use the --> | ||
| + | <!-- sameSiteCookies=none version of the CookieProcessor --> | ||
| + |   < | ||
| + |   < | ||
| + | </ | ||
| + | |||
| + | ==== Turn off localhost access logs ==== | ||
| + | |||
| + | By default, one of the enabled forms of logging in Apache Tomcat is the Local Host Access Log. This log tracks every connection made to the server. This can add up to a lot of logs that can quickly overwhelm the hard drive space of your server. | ||
| + | |||
| + | To disable this, edit resources/ | ||
| + | |||
| + | Look for the ''< | ||
| + | |||
| + | ===== Changing collections or services  | ||
| On startup, the servlet loads in its site, collections and services. | On startup, the servlet loads in its site, collections and services. | ||
| If the site or collection configuration files are changed, these changes will not take | If the site or collection configuration files are changed, these changes will not take | ||
| Line 70: | Line 106: | ||
|   |   | ||
| - | ==== Tomcat Session Handling ==== | + | ===== Tomcat Session Handling  | 
| Tomcat uses a Manager to handle HTTP session information. The Manager is specified in a < | Tomcat uses a Manager to handle HTTP session information. The Manager is specified in a < | ||
| - | Session information is stored between normal stop and starts in $GSDL3SRCHOME/ | + | Session information is stored between normal stop and starts in $GSDL3SRCHOME/ | 
| To manually clear saved session info, stop Tomcat and delete the SESSIONS.ser file. | To manually clear saved session info, stop Tomcat and delete the SESSIONS.ser file. | ||
| Line 80: | Line 116: | ||
| - | ==== Proxying Tomcat with Apache ==== | + | ===== Proxying Tomcat with Apache  | 
| Instead of incorporating servlet support into your existing web server,  | Instead of incorporating servlet support into your existing web server,  | ||
| an easy alternative is to proxy Tomcat. The http:// | an easy alternative is to proxy Tomcat. The http:// | ||
| Line 90: | Line 126: | ||
| ServerName www.greenstone.org | ServerName www.greenstone.org | ||
| ... | ... | ||
| - | ProxyPass / | + | |
| - | ProxyPassReverse / | + | Redirect / | 
| + | ProxyPass / | ||
| + | ProxyPass / | ||
| + | ProxyPassReverse / | ||
| + | < | ||
| + |           ProxyPassReverseCookiePath / | ||
| + | </ | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | Restart Apache for these changes to take effect. | ||
| In our example, the Greenstone3 servlet can be accessed at | In our example, the Greenstone3 servlet can be accessed at | ||
| Line 99: | Line 143: | ||
| http:// | http:// | ||
| - | You will also need to tell Greenstone itself about the new web address. Edit | + | You will also need to tell Greenstone itself about the new web address. Edit **build.properties**. | 
| - | **web/ | + | Set the revproxy fields: | 
| < | < | ||
| - | < | + | revproxy.protocol=https | 
| + | revproxy.domain=www.greenstone.org | ||
| + | ## | ||
| + | ## | ||
| </ | </ | ||
| + | You will also need to edit **resources/ | ||
| + | Uncomment and set the servlet_url_prefix param: | ||
| + | < | ||
| + | < | ||
| + |    < | ||
| + |    < | ||
| + | </ | ||
| + | </ | ||
| + | You will need to restart Tomcat for these settings to take effect. | ||
| === Running Tomcat behind a proxy === | === Running Tomcat behind a proxy === | ||
| Almost everything works fine when Tomcat is running behind a proxy.  | Almost everything works fine when Tomcat is running behind a proxy.  | ||
| Line 119: | Line 175: | ||
| - | ==== Deploying a Soap Server on localsite ==== | + | ===== Deploying a Soap Server on localsite  | 
| Line 127: | Line 183: | ||
| < | < | ||
| Then, deploy  | Then, deploy  | ||
| - | (as written in the [[http://www.greenstone.org/ | + | (as written in the [[http://files.greenstone.org/ | 
| < | < | ||
| Check that it works, by **starting** tomcat again and going to: | Check that it works, by **starting** tomcat again and going to: | ||
| Line 133: | Line 189: | ||
| Make sure that the page appears. You can also look at the wsdl file for the gs3 web service that's been exposed:  | Make sure that the page appears. You can also look at the wsdl file for the gs3 web service that's been exposed:  | ||
| < | < | ||
| - | You can also deploy other sites, see the [[http://www.greenstone.org/ | + | You can also deploy other sites, see the [[http://files.greenstone.org/ | 
en/user_advanced/gs3_server.1479341448.txt.gz · Last modified: 2016/11/17 00:10 by kjdon
                
                