cancel
Showing results for 
Search instead for 
Did you mean: 

Problem accessing a ABAP web service through a Apache Reverse proxy

Sigurdur
Participant
0 Kudos

We have implemented aABAP webservice on NW 7.0 SP 21 with basic logon

Our system uses four appservers with a Sap Webdispatcher running in front of them as a load balancer

and external access is via Apache Reverse proxy pointing to the Sap Web dispacher

The Reverse proxy is in the DMZ zone and the Web Dispatcher is inside the firewall

The problem is that if we try to use the Web Service via the Preverse proxy

http://balancer.domain.com:81/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a

We get the error

HTTP/1.1 500 SRT: Unexpected failure in SOAP processing occurred:

("No configuration for this HTTP server instance")

But if we go directly to the Load balancer the Web service works

http://balancer.domain.com:81/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a

or if we go directly to the app server

http://sapserv1.domain.com:80/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a

...

....

http://sapservn.domain.com:80/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a

The strange thing is that we are already using two distinct BSP Abap web pages without any problem throught the Reverse proxy.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Did you set these directives

ProxyPreserveHost on

RequestHeader set ClientProtocol xxxx

RequestHeader set x-sap-webdisp-ap HTTPS=xxx

in the Apache config file ?

Regards,

Olivier

Sigurdur
Participant
0 Kudos

Hi

this is what my reverse proxy config file looked like before

    1. # Mix fyrir SAP
RewriteEngine on RewriteRule ^/(sap\(.*) http://sapgw.domain.com:81/$1 [P,L] ProxyPass /sap http://sapgw.domain.com:81/sap ProxyPassReverse /sap http://sapgw.domain.com:81/sap

And here is a sample of Request - Response headers on the SAP Web Dispatcher with that config

- Http: Request, GET /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ Command: GET + URI: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 Host: sapgw.domain.com:81 UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 DNT: 1 + Cookie: fpc1000393861811=xBnnx8SL|UEGhWyFLaa|fses1000393861811=|h3Osku4Kaa|xBnnx8SL|fvis1000393861811=Zj1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRnBvc3RzdG9kJTJGaGphbHAlMkZBZGFsc2lkYS5odG1sJnQ9aHR0cCUzQSUyRiUyRnd3dy5wb3N0dXIuaXMlMkZwb3N0c3RvZCUyRiZiPSVDMyU4RHNs - Http: Response, HTTP/1.1, Status: Internal server error, URL: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 StatusCode: 500, Internal server error Reason: SRT: Unexpected failure in SOAP processing occurred: ("No configuration for this HTTP server instance") - ContentType: text/html MediaType: text/html ContentLength: 0 Server: SAP Web Application Server (1.0;700) HeaderEnd: CRLF

After adding your suggested config

    1. # Mix fyrir SAP
RewriteEngine on RewriteRule ^/(sap\(.*) http://sapgw.domain.com:81/$1 [P,L] ProxyPass /sap http://sapgw.domain.com:81/sap ProxyPassReverse /sap http://sapgw.domain.com:81/sap ProxyPreserveHost on RequestHeader set ClientProtocol http RequestHeader set x-sap-webdisp-ap HTTP=80,HTTPS=443

The Request header changed, but it did not help the situation, the response is still a 500 Error message

- Http: Request, GET /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ , Using Basic Authorization Command: GET + URI: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 Host: www.domain.com accept: text/html, application/xhtml+xml, / accept-language: is UserAgent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) accept-encoding: gzip, deflate + Cookie: fpc1000393861811=VfKJXFUs|VLNmXeCLaa|fses1000393861811=|nGeLO2yLaa|VfKJXFUs|fvis1000393861811=ZT1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRmRlc2t0b3BkZWZhdWx0LmFzcHglMkZ0YWJpZC01MTclMkYmZj1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRm5hZm5hbGlzdGklMkZiYWV0YVZp + Authorization: Basic via: 1.1 37CC8F3C (IWSS), 1.1 www.domain.com clientprotocol: http x-sap-webdisp-ap: HTTP=80,HTTPS=443 x-forwarded-for: 10.200.10.52, 192.168.17.134 x-forwarded-host: www.domain.com x-forwarded-server: www.domain.com Connection: close HeaderEnd: CRLF - Http: Response, HTTP/1.1, Status: Internal server error, URL: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 StatusCode: 500, Internal server error Reason: SRT: Unexpected failure in SOAP processing occurred: ("No configuration for this HTTP server instance") - ContentType: text/html MediaType: text/html ContentLength: 0 Server: SAP Web Application Server (1.0;700) HeaderEnd: CRLF

So for some Reason I can not proxy request to the SOAP processor via the proxy, but BSP web pages work without a problem ?

If the Host name in the Request header dosen't match the SAP server name the SOAP processor Gives an error ?

Former Member
0 Kudos

Hello,

Your test is wrong ! I see a GET http command. It seems that you are using a web browser to test the web service URL.

A web browser is NOT a web service client and will always generate an HTTP 500 error.

For testing you have to use a web service client utility like SAP Web Service Navigator or the excellent freeware SOAPUI.

Regards,

Olivier

Sigurdur
Participant
0 Kudos

Yes

I´m aware that a HTTP web browser wil allways generate an Error as it is not sending in XML,

But If the service was working I should get a different error

namely >SRT: Wrong Content-Type and empty HTTP-Body received

I will do better testing using SoapUU

Sigurdur
Participant
0 Kudos

EUREKA

I figured out what the problem was

The actual problem was with the path ending on slash caracter i.e "/"

Also this SOAP Address works

https://www.domain.com/sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/HTTP/1.1

Answers (0)