How to change OData URL


Dear all,

 

We encountered a problem when we use reverse proxy to expose intranet k2 site url to external. We have changed the OData URL to proxy url  in k2 management. But when we use the K2 OData Feed with Excel, it prompt us that "the remote name could not be resolved:'XXXX'", XXXX is intranet k2 site hostname. We have changed the OData Url to proxy url but why it connect to intranet url?

 

Can you tell me how can I change the XXXX to proxy url?

 

Best regards,


3 replies

Badge +15

Hi,


 


On the machine that you are trying to use the OData URL, try performing a ping on the OData URL. The ping should reveal the ip address of your server. If your reverse proxy has been set up correctly, it should show the ip address of your reverse proxy server, and not the server that is hosting your K2 site.

hi boringNerd,

 

Thanks your reply.

 

We performed the ping, it reveal the reverse ip. But it still prompt us that unable to connect to the remote server when we use odata feed with excel. I browsed the odata api url and found that the root label property xml:base is intranet odata url. Please see the attachment. I think maybe it is the reason why unable to connect the server. Do you know how to change the xml:base property value?

 

 

 

Thanks a lot,


Badge +15

Hi,


 


I'm not an expert in reverse proxy, so you may want to check this with whoever that is implementing your reverse proxy for you.


 


We do not have any official guide for configuring reverse proxy to work with SmartForms, but I referred to this to setup and test reverse proxy in my environment.


 


From what I can tell, you should not be modifying the URL within your K2 environment. I believe you have setup your K2 within your inranet, so the URL that has been configured only works within your intranet. You should not modify this, as your intranet users will still need to access it. If you changed this to point to your reverse proxy URL, your intranet users will also get routed to that reverse proxy URL.


 


What you want to do, is to configure your reverse proxy to translate the external URL, to the intranet URL, and vice versa. This means you want the proxy to translate your request content and URL to the intranet one, and the response content to the external URL.


 


For the OData to work via reverse proxy, your reverse proxy will need to accomplish two things:


 


1. Translate the external OData URL to the intranet one


2. Translate the URL within the content of the XML response back the external one.


 


The first one is easy, but the second item is a little tricky. I am not sure what reverse proxy you are using, but with IIS ARR and URLRewrite, you can configure a outbound rule to search through the response for any match to the intranet URL, then replace it with the external one.

Reply