cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Web Dispatcher has router redirecting same web host

collinjona
Explorer
0 Kudos
1,261

Dear all,

I have two server :

1 non sap server hosted srv.exemple.fr with port 443

2 sap system hosted ex.myapp.exemple.fr on port 44300

I have setup the web dispatcher with the below configuration:

icm/server_port_0 = PROT=ROUTER,PORT=443, EXTBIND=1
icm/server_port_1 = PROT=HTTP,PORT=80, EXTBIND=1
icm/server_port_2 = PROT=HTTPS,PORT=8443
exe/icmbnd = /usr/sap/WDP/W00/exe/icmbnd
icm/HTTP/logging_00 = PREFIX=/, LOGFILE=access_log-%d-%m-%y_%h:%t:%s,LOGFORMAT=%t %h %u - "%r2" %s %b %L %a %r1


#-----------------------------------------------------------------------
# SAP Web Dispatcher Administration
#-----------------------------------------------------------------------
icm/HTTP/admin_0 = PREFIX=/sap/wdisp/admin,DOCROOT=$(DIR_DATA)$(DIR_SEP)icmandir,AUTHFILE=$(icm/authfile)
#-----------------------------------------------------------------------
# Start webdispatcher
#-----------------------------------------------------------------------
_WD = $(rdisp/workdir)/wd.sap$(SAPSYSTEMNAME)_$(INSTANCE_NAME)
Execute_02 = local rm -f $(_WD)
Execute_03 = local ln -s -f $(DIR_EXECUTABLE)/sapwebdisp$(FT_EXE) $(_WD)
Restart_Program_00 = local $(_WD) pf=$(_PF)
SETENV_05 = SECUDIR=$(DIR_INSTANCE)/sec






wdisp/system_0 = SID=EXT, EXTSRV=https://srv1.exemple.fr, SRCSRV=srv1.exemple.fr:443, SRCURL=/
wdisp/system_1 = SID=DEV, MSHOST=dev,MSPORT=8100, SRCSRV=ex.myapp.exemple.fr:443;mb.myapp.exemple.fr:443, SRCURL=/




icm/HTTP/mod_0 = PREFIX=/, FILE=/sapmnt/WDP/profile/mod_rules.txt

the mod_rules.txt files contains the below configuration:

  if %{HTTP_HOST} regimatch "ext.myapp.exemple.fr"
     SetHeader x-sap-webdisp-target-sid DEV [break]
  if %{HTTP_HOST} regimatch "srv1.exemple.fr"
     SetHeader x-sap-webdisp-target-sid EXT [break]
  if %{HTTP_HOST} regimatch "ex.myapp.exemple.fr"
     SetHeader x-sap-webdisp-target-sid DEV [break]

The main problems is when I want to go to srv1.exemple.fr it's ok

when I want to go ex.myapp.exemple.fr I'm redirected to the web server hosting srv1.exemple.fr

So all my URL are redirect to the same server and not distributed.

My sap web dispatcher is 7.45

Any idea why ? I see nothing wrong in my log file

Thanks and regards

Accepted Solutions (0)

Answers (4)

Answers (4)

collinjona
Explorer
0 Kudos

Hello Isaias,

Thanks for your help and answer.

I understood so I will try and let you inform if I found the solution.

I don't want to open another port has I want all traffic passing throught the 443

Thanks 🙂

Isaías
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hello Jonathan,

I would say that you do not need the parameter "icm/HTTP/mod_0" in this case.

And my understanding is that the hostnames "srv1.exemple.fr" and "ex.myapp.exemple.fr" point directly to the backend systems, not to the Web Dispatcher.

Therefore, using "SRCSRV" as shown at the initial post is not possible.

If your Web Dispatcher address is sapwdp.exemple.fr and this is the only DNS host/alias pointing to the Web Dispatcher, you need to either open one more port (icm/server_port_X) in the Web Dispatcher and use the port as the selection criterion, or you would have to use the URL prefixes (SRCURL) to indicate to the Web Dispatcher which request goes to which backend.

You can read this wiki page for more details about all the selection criteria available.

Cheers,

Isaías

Isaías
Product and Topic Expert
Product and Topic Expert
0 Kudos

PS: another thing that I have just noticed now. The port 443 is defined as "ROUTER" protocol. The Web Dispatcher cannot see the traffic going through, so it will send all requests reaching its port 443 to the first system defined (the first wdisp_system_X based on the index number "X").

collinjona
Explorer
0 Kudos

Hi Christiano,

Thanks for your answer.

I set the trace level to 2 and see the below information when executing the mod_rules files

IF "%{HTTP_HOST}"->"sapwdp.exemple.fr", 

"sapwdp.exemple.fr" is the dns of my sap web dispatcher

any idea why the HTTP_POST is changed by it ?

cris_hansen
Advisor
Advisor
0 Kudos

Hi Jonathan,

I would upgrade the web dispatcher to a higher release, per recommendation found in SAP Note 908097.

I also would set the web dispatcher trace level to 2, and then follow the reasoning why, based on the URL entered, the routing is forwarded to one server instead of another.

Additional information on modification handlers can be found here.

Regards,

Cris