Salesforce

How to configure an Apache httpd server as a reverse proxy for the PASOE?

« Go Back

Information

 
TitleHow to configure an Apache httpd server as a reverse proxy for the PASOE?
URL NameHow-to-configure-an-Apache-httpd-server-as-a-reverse-proxy-for-the-PASOE
Article Number000181097
EnvironmentProduct: OpenEdge
Version: 11.6, 11.7, 12
OS: All Supported Platforms
Other: Apache Httpd, mod.proxy, PASOE
Question/Problem Description
How to set up a front facing Apache Httpd server for the PASOE, using the mod.proxy directive?

How to configure an Apache httpd server as a reverse proxy for the PASOE, so that it will act as the public facing side of an application that is using rest services?
Steps to Reproduce
Clarifying Information
Apache supports an optional module (mod_proxy) that configures the web server to act as a proxy server. We will use this module to forward requests for a particular web application to the PASOE, without having to configure a web connector.
Error Message
Defect Number
Enhancement Number
Cause
Resolution

PASOE configuration

  1. On PASOE, enable the AJP protocol from the PASOE instance directory:
{CATALINA_BASE}/bin/tcman.sh feature AJP13=on
{CATALINA_BASE}/bin/tcman.sh config psc.as.ajp13.port=50000
tcman stop
tcman start

Note that due to updates in 11.7.6, 12.2.3 , 12.3, a PASOE instance fails to start properly because the AJP13 protocol is configured by default with: secretRequired="true". The secret option is supported since Apache Module mod_proxy_ajp 2.4.42, 2.5.

Apache HTTPD configuration

  1. Install Apache 2.2x or later
  2. Configure your Apache to include the optional mod_proxy that configures the web server to act as a proxy server and mod_proxy_ajp modules, to use the AJP protocol to to forward requests to PASOE Tomcat.
In conf/httpd.conf, enable the following modules, removing the hash (#) sign to load then at Apache startup time
Include conf/extra/httpd-vhosts.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Note that the limitation of the AJP protocol, is it's maximum packet size, therefore mod_proxy_ajp does not support large body sizes (8186 (8 Kbytes - 6)), and the number of bytes actually left to send from the request body in the packet. Whereas mod_jk and current Tomcat versions, the packet size can be enlarged to 64K. On the other hand mod_proxy this can be used to forward requests for a particular web application to a Tomcat instance, without having to configure a web connector such as mod_jk

The following modules don't specifically need to enabled:
 
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
  1. Setup virtual hosts
Modify the httpd-vhosts.conf to setup virtual host settings. Enclose all the apache configuration parameters for each and every virtual host between these VirtualHost tags. 

The following settings illustrate a configuration for the PASOE SOAP transport instead of WSA. Adjust the configuration accordingly for the other transports:
             
Edit /conf/extra/httpd-vhosts.conf
   
# Virtual Hosts

<VirtualHost *:80>
DocumentRoot <path to http root folder>/www
ServerName localhost
<Directory "<path to http root folder>/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>

ProxyPass /soap ajp://[host]:8009/soap
ProxyPassReverse /soap ajp://[host]:8009/soap
</VirtualHost>
  • VirtualHost *:80 – Indicates that all the name-based virtual hosts will be listening on the default port 80
  • Replace [host] with the PAS server hostname or IP address. 
  • Any apache directives can be used within the virtualhost container such as ServerAlias, ErrorLog, CustomLog (access_log, error_log )
  • For the name-based virtual host to work properly, the DNS entry for each virtual host must point to the same external ip-address of the physical server where the Apache webserver is running.
  1. Restart the Apache and test
apache2/bin/apachectl restart

Check VirtualHost Configuration Syntax:
apache/bin/httpd -S
VirtualHost configuration:
Syntax OK
When something is not configured properly, it will display a Warning message, example:
Warning: DocumentRoot [/apache/docs/<name>] does not exist
 
 
Please note that Third-Party product support, here Apache httpd as a proxy server is not covered in the scope of our technical support: 
https://community.progress.com/s/products/openedge/scope-of-support
Workaround
Notes
Keyword Phrase
Last Modified Date10/2/2025 10:08 AM

Powered by