cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Business One WebClient (+CCC) behind reverse proxy

Private_Member_145664
Participant
0 Kudos

In my private cloud I do have a SLD (localsldserver) (1.10.Pl18HF) and a HANAServer with the SBO WebClient (localwebserver) (10.0FP2022). Both are in a LAN (Local area network) and not accessible from the internet.

I like to use a reverse proxy (nginx) in a DMZ:

sboweb.mycloud.de -> localwebserver

sbosld.mycloud.de > localsldserver

In the cloud control center the "Web Client for SBO" is registerd (localwebserver:443)

In cloud control center "External Address Mapping" are the mapping between the Internal URL and external URL for both servers.

I have checked the block post about the API proxy (https://blogs.sap.com/2021/04/15/reverse-proxy-configuration-for-sap-business-one-api-gateway-servic...) and tried to modify the nginx settings.

But: the web client forwards to the localsldserver instead of the sbosld.mycloud.de. I have set in the /usr/sap/SAPBusinessOne/WebClient/enh.sh the external address for the sld. But the Browser will be forwarded to the localsldserver instead of the external one.

I understand, that the reverse proxy will act as a client, when contacting the local server. But I have to forward the information, that the request comes from outside, and the routing to SLD should use the external address.

I have tried to add Access-Control-Allow-Origin headers (via nginx .config file), so that the WebClient may understand, that it should forward to the external address. But it does not work.

Regards

Private_Member_145664
Participant
0 Kudos

I have solved my challange.

in the localwebserver.conf I have used proxy_set_header HOST $host. This lead, that the rule for the second nginx.config did not word.

localwebserver.conf:

server {
 listen 443 ssl;
 server_name sboweb.mycloud.de;
 ssl_...
 location / { 
     #NO: proxy-set_header Host $host;
     proxy_pass https://localwebserver/; 
  }
}

localsldserver.conf:

server {
 listen 443 ssl;
 server_name sbosld.mycloud.de;
 ssl_...
 location / { proxy_pass https://localsldserver/; }
}
Private_Member_145664
Participant
0 Kudos
Working solution without proxy_set_header Host $host;
server {
 listen 443 ssl;
 server_name sboweb.mycloud.de;
 ssl_...
 location / { proxy_pass https://localwebserver/; } 
}
server {
 listen 443 ssl;
 server_name sbosld.mycloud.de;
 ssl_...
 location / { proxy_pass https://localsldbserver/; }
}

Accepted Solutions (0)

Answers (0)