A Reverse
Proxy is a type of server that retrieves resources from other servers
on behalf of the client. The resources are returned to the client as though
they are originated from the server itself. Client feels that the resources are
being provided by the server itself, and unaware of the servers that have
provided the resources.Forward proxy acts as an intermediary for its clients
and returns the resources accessible on the internet.Reverse proxy acts as an
intermediary for the servers to return the resources provided by other
servers.
Reverse proxy is most widely used when you want your application
accessible in the internet, without exposing the Application Servers, in other
words, it is used when you want your intranet application to be accessible
through internet.The proxied server may be a webserver itself, or it may be an
application server using a different protocol, or an application server.
How to Configure Reverse Proxy in iPlanet?
iPlanet 7 and above versions has inbuilt proxy
plugins , so no need to load any plugins or libraries.
Add below configuration lines in obj.conf file.
NameTrans fn="map"
from="/Revese_Proxy" name="reverse-proxy"
to="http:/Revese_Proxy"
<Object name="reverse-proxy">
Route fn="set-origin-server" server="http://backendserver.com"
</Object>
<Object ppath="http:*">
Service fn="proxy-retrieve" method="*"
</Object>
<Object name="reverse-proxy">
Route fn="set-origin-server" server="http://backendserver.com"
</Object>
<Object ppath="http:*">
Service fn="proxy-retrieve" method="*"
</Object>
Push/ Deploy the changes in iPlanet console. No need of restart.
Note: If
you have custom Custom-obj.conf file (Virtual servers) and has client
configuration your Reverse proxy configuration is as below.
Custom-obj.conf
<Object name="default">
<Client urlhost="Reverse-Proxy-server.com">
NameTrans fn="map" from="/Revese_Proxy" name="reverse-proxy" to="http:/Revese_Proxy"
</Client>
Custom-obj.conf
<Object name="default">
<Client urlhost="Reverse-Proxy-server.com">
NameTrans fn="map" from="/Revese_Proxy" name="reverse-proxy" to="http:/Revese_Proxy"
</Client>
</Object>
<Object name="reverse-proxy">
Route fn="set-origin-server" server="http://backendserver.com"
</Object>
<Object ppath="http:*">
Service fn="proxy-retrieve" method="*"
</Object>
Note:
Only one ppath="http:*" is required for multiple Reverse Proxy
configuration. No need to duplicate the ppath block every time.
How Reverse Proxy works?
When request comes to iplanet let ex
http://Reverse-Proxy-server.com/Revese_Proxy
The default object NameTrans directive map
attribute function will be execute and
convert the logical URL of the request to a physical path name.
NameTrans
fn="map" from="/Revese_Proxy"
name="reverse-proxy" to="http:/Revese_Proxy"
If this physical path name (http:/Revese_Proxy)
matches the Object ppath="http:*" ,
ppath object directive proxy-retrieve function will be execute.
<Object ppath="http:*">
Service fn="proxy-retrieve" method="*"
</Object>
Service fn="proxy-retrieve" method="*"
</Object>
proxy-retrieve
The proxy-retrieve function retrieves a information from a
remote server and returns it to the client. This function also enables you to
configure the server to allow or block arbitrary methods. This function only
works on the HTTP protocol.
After execution of the ppath
Object proxy-retrieve function ,process goes to the Object
name="reverse-proxy" block.
<Object
name="reverse-proxy">
Route fn="set-origin-server" server="http://backendserver.com"
</Object>
Route fn="set-origin-server" server="http://backendserver.com"
</Object>
Route fn="set-origin-server
Set the back end server information where to send the
request .
Alternative ways
to configure the Reverse Proxy in iPlanet
Below configuration works same as above one but difference is
removed the name attribute in NameTrans and added the Route
function in ppath Object.
<Object name="default">
<Client urlhost="Reverse-Proxy-server.com">
NameTrans fn="map"
from="/Revese_Proxy” to="http:/Revese_Proxy"
</Client>
</Object>
<Object
ppath="http:*">
Service fn="proxy-retrieve" method="*"
Route fn="set-origin-server"
server="http://backendserver.com"
</Object>
No comments:
Post a Comment