Introduction:-
To resolve the redirection issue from external to internal and vice versa . Need to be update the configuration file mod_wl_ohs.conf and apps.conf accordingly to resolve the External Node Gets Redirected.
Internal node:-appsprod.abc-cranes.com
External node:-abcisupplier.abc-cranes.com
In $IAS_ORACLE_HOME/instances/EBS_web_<SID>_OHS1/config/OHS/EBS_web_<SID>/mod_wl_ohs.conf, it has the following setting :-
# +======================================================================+
# | Copyright (c) 2005, 2016 Oracle and/or its affiliates. |
# | All rights reserved. |
# | Version 12.0.0 |
# +======================================================================+
#
# $Header: mod_wl_ohs_conf_FMW.tmp 120.7.12020000.7 2016/11/22 07:45:33 kmandal ship $
#
# This template is used to seed the initial mod_wl_ohs.conf. After that, AutoConfig does not manage mod_wl_ohs.conf changes.
# It is advisable to perform OHS configuration changes through EM console.
# The default EM console URL is http://%s_hostname%.%s_domainname%:%s_wls_adminport%/em
#
####################################################################
#
# mod_wl_ohs.so - The plug-ins allow requests to be proxied from an
# Apache HTTP Server, Oracle HTTP Server, or Microsoft Internet Information Server (IIS)
# to WebLogic Server. In this way, plug-ins enable the HTTP server to communicate
# with applications deployed on the WebLogic Server.
# For further information refer http://download.oracle.com/docs/cd/E14571_01/web.1111/e16435/overview.htm#BABGIJBI
#
#
# WebLogicCluster - List of member server and port in server:port,server1:port1 format
# For further information refer Configure the Apache HTTP Server Plug-In here:
# http://download.oracle.com/docs/cd/E14571_01/web.1111/e16435/apache.htm#CDEHDGJG
#
#
####################################################################
LoadModule weblogic_module "${ORACLE_HOME}/ohs/modules/mod_wl_ohs.so"
<IfModule mod_weblogic.c>
DynamicServerList OFF
<Location /OA_HTML>
SetHandler weblogic-handler
WebLogicCluster abcisupplier.abc-cranes.com:7201,appsprod.abc-cranes.com:7201
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /forms>
SetHandler weblogic-handler
WLCookieName JsessionIDForms
WebLogicCluster appsprod.abc-cranes.com:7401,abcisupplier.abc-cranes.com:7412
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /webservices>
SetHandler weblogic-handler
WLCookieName JsessionIDOAFM
WebLogicCluster abcisupplier.abc-cranes.com:7601,appsprod.abc-cranes.com:7603
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /formsclient>
SetHandler weblogic-handler
WLCookieName JsessionIDFORMS-C4WS
WebLogicCluster abcisupplier.abc-cranes.com:7801,appsprod.abc-cranes.com:7803
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /ekanban-UI-context-root>
SetHandler weblogic-handler
WLCookieName JsessionIDEkanban
WebLogicCluster abcisupplier.abc-cranes.com:6812
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /accessgate>
SetHandler weblogic-handler
WebLogicCluster abcisupplier.abc-cranes.com:6812
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
<Location /YMS-UI-context-root>
SetHandler weblogic-handler
WLCookieName JsessionIDYMS
WebLogicCluster abcisupplier.abc-cranes.com:6812
WLTempDir ${ORACLE_INSTANCE}/tmp
#SecureProxy ON
#WLProxySSL ON
#WLSSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
</Location>
</IfModule>
In $FMW_HOME/webtier/instances/EBS_web_VIS_OHS1/config/OHS/EBS_web_VIS/apps.conf, it has the following setting:
#
# $Header: apps_conf_FMW.tmp 120.10 2012/01/31 11:27:58 ttsharma ship $
#
# This template would not be instantiated using Autoconfig API. The API
# <FND_TOP>/patch/115/bin/txkSetAppsConfig.pl is used to instantiate OR
# regenerate <webtier_home>/config/OHS/<s_ohs_component>/apps.conf file.
#
# It is advisable to perform OHS configuration changes through EM console.
# The default EM console URL is http://<s_hostname>.<s_domainname>:<s_wls_adminport>/em
#
# NOTE : This is a template to add apps specific configuration in httpd.conf
#
################################################################################
#
# Small note on directive used in this config file
#
# ProxyPass - This directive allows remote servers to be mapped into the spabc of
# the local server; the local server does not act as a proxy in the conventional sense,
# but appears to be a mirror of the remote server. The local server is often called a
# reverse proxy or gateway. Please see http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass
# for details.
#
#
# ProxyPass balancer://oacorecluster_oamedia - If the Proxy directive scheme starts with the
# balancer:// (eg: balancer://cluster/, any path information is ignored) then a virtual worker
# that does not really communicate with the backend server will be created. Instead it is responsible
# for the management of several "real" workers. In that case the special set of parameters can be
# add to this virtual worker.
# See mod_proxy_balancer for more information about how the balancer works.
#
#
# ProxyPassReverse - Adjusts the URL in HTTP response headers sent from a reverse proxied server
# Please refer http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypassreverse for more details.
#
#
# mod_proxy_balancer - mod_proxy extension of load balancer.
# Please refer "http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html" for details.
#
#
# BalancerMember - This directive adds a member to a load balancing group. It could be used within a
# <Proxy balancer://...> container directive, and can take any of the key value pairs available to
# ProxyPass directives.
#
#
#
###################################################################################
LoadModule proxy_balancer_module "${ORACLE_HOME}/ohs/modules/mod_proxy_balancer.so"
ProxyRequests off
<IfModule proxy_balancer_module>
ProxyRequests Off
######################
# for oacore
######################
<Location /OA_MEDIA>
ProxyPass balancer://oacorecluster_oamedia
ProxyPassReverse balancer://oacorecluster_oamedia
</Location>
<Proxy balancer://oacorecluster_oamedia>
BalancerMember http://abcisupplier.abc-cranes.com:7201/OA_HTML/media
BalancerMember http://appsprod.abc-cranes.com:7201/OA_HTML/media
</Proxy>
<Location /OA_JAVA>
ProxyPass balancer://oacorecluster_oajava
ProxyPassReverse balancer://oacorecluster_oajava
</Location>
<Proxy balancer://oacorecluster_oajava>
BalancerMember http://abcisupplier.abc-cranes.com:7201/OA_HTML/classes
BalancerMember http://appsprod.abc-cranes.com:7201/OA_HTML/classes
</Proxy>
<Location /OA_CGI/FNDWRR.exe>
ProxyPass balancer://oacorecluster_oacgi/OA_HTML/txkFNDWRR.pl
ProxyPassReverse balancer://oacorecluster_oacgi/OA_HTML/txkFNDWRR.pl
</Location>
<Proxy balancer://oacorecluster_oacgi/OA_HTML/txkFNDWRR.pl>
BalancerMember http://abcisupplier.abc-cranes.com:7201
BalancerMember http://appsprod.abc-cranes.com:7201
</Proxy>
######################
# for forms
######################
<Location /OA_MEDIA>
ProxyPass balancer://formscluster_oamedia
ProxyPassReverse balancer://formscluster_oamedia
</Location>
<Proxy balancer://formscluster_oamedia>
BalancerMember http://appsprod.abc-cranes.com:7401/OA_HTML/media
BalancerMember http://abcisupplier.abc-cranes.com:7412/OA_HTML/media
</Proxy>
<Location /OA_JAVA>
ProxyPass balancer://formscluster_oajava
ProxyPassReverse balancer://formscluster_oajava
</Location>
<Proxy balancer://formscluster_oajava>
BalancerMember http://appsprod.abc-cranes.com:7401/OA_HTML/classes
BalancerMember http://abcisupplier.abc-cranes.com:7412/OA_HTML/classes
</Proxy>
</IfModule>
#
# Environment settings to be passed to CGI programs from external env
#
PassEnv NLS_LANG
#
# Set Limit of ENV Variables
#
# The LimitRequestFieldSize directive allows the server administrator to
# reduce or increase the limit on the allowed size of an HTTP request header
# field. A server needs this value to be large enough to hold any one header
# field from a normal client request
LimitRequestFieldSize 4096
# The LimitRequestFields directive allows the server administrator to
# modify the limit on the number of request header fields allowed in an HTTP
# request. A server needs this value to be larger than the number of fields
# that a normal client request might include. The number of request header
# fields used by a client rarely exceeds 20, but this may vary among different
# client implementations, often depending upon the extent to which a user has
# configured their browser to support detailed content negotiation
LimitRequestFields 32
# The LimitRequestBody directive allows the user to set a limit on
# the allowed size of an HTTP request message body within the context in which
# the directive is given (server, per-directory, per-file or per-location). If
# the client request exceeds that limit, the server will return an error
# response instead of servicing the request. The size of a normal request
# message body will vary greatly depending on the nature of the resource and
# the methods allowed on that resource
LimitRequestBody 0
# The LimitRequestLine directive allows the server administrator to
# reduce the limit on the allowed size of a client's HTTP request-line
# below the normal input buffer size compiled with the
# server. Since the request-line consists of the HTTP method, URI, and protocol
# version, the LimitRequestLine directive plabcs a restriction on the length of
# a request-URI allowed for a request on the server. A server needs this value
# to be large enough to hold any of its resource names, including any
# information that might be passed in the query part of a GET request
LimitRequestLine 4096
#
# Caching static contents
#
<IfModule expires_module>
ExpiresActive On
<Location /OA_MEDIA>
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType text/txt "access plus 1 month"
</Location>
<Location /OA_HTML>
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
# ExpiresByType text/html "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
# ExpiresByType text/js "access plus 1 month"
</Location>
</IfModule>
#
# To facilitate reloading of the html on change
#
<Location ~ "/oam/nonUix/launchMode/restricted">
Header always add Cache-Control no-cache
Header always merge Cache-Control must-revalidate
Header always merge Cache-Control no-store
</Location>
Solution:-
To fix this issue External Node Gets Redirected, pls make the following changes to the run file system of the external node:
Check the ohs directory.
$grep ohs $CONTEXT_FILE
1. Modify $IAS_ORACLE_HOME/instances/EBS_web_<SID>_OHS1/config/OHS/EBS_web_<SID>/mod_wl_ohs.conf
-> Remove any reference to Internal.<DOMAIN>.
Change:
WebLogicCluster internal.<DOMAIN>:8000:7201,external.<DOMAIN>:7201
WebLogicCluster internal.<DOMAIN>:8000:7401,external.<DOMAIN>:7401
WebLogicCluster internal.<DOMAIN>:8000:7601,external.<DOMAIN>:7601
WebLogicCluster internal.<DOMAIN>:8000:7801,external.<DOMAIN>:7801
To:
WebLogicCluster external.<DOMAIN>:8000:7201
WebLogicCluster external.<DOMAIN>:8000:7401
WebLogicCluster external.<DOMAIN>:8000:7601
WebLogicCluster external.<DOMAIN>:8000:7801
2. In the apps.conf
-> remove any reference to Internal.<DOMAIN>
Change:
BalancerMember http://internal.<DOMAIN>:7201/OA_HTML/media
BalancerMember http://external.<DOMAIN>:7201/OA_HTML/media
BalancerMember http://internal.<DOMAIN>:7201/OA_HTML/classes
BalancerMember http://external.<DOMAIN>:7201/OA_HTML/classes
BalancerMember http://internal.<DOMAIN>:7201
BalancerMember http://external.<DOMAIN>:7201
BalancerMember http://internal.<DOMAIN>:7401/OA_HTML/media
BalancerMember http://external.<DOMAIN>:7401/OA_HTML/media
BalancerMember http://internal.<DOMAIN>:7401/OA_HTML/classes
BalancerMember http://external.<DOMAIN>:7401/OA_HTML/classes
To:
BalancerMember http://external.<DOMAIN>:7201/OA_HTML/media
BalancerMember http://external.<DOMAIN>:7201/OA_HTML/classes
BalancerMember http://external.<DOMAIN>:7201
BalancerMember http:/external.<DOMAIN>:7401/OA_HTML/media
BalancerMember http://external.<DOMAIN>:7401/OA_HTML/classes
3. Restart the internal node.
4. Restart the external node.
5. Try to reproduce the issue.
To configure external node , you may check the another post, click here. For similar issue, you may check the another article, click here.