0

ArcGIS 10.2 server is installed in one machine which doesn't have public ip. My web application is hosted in another machine and IIS7 is configured and it has public ip. Both the machines are in LAN connection.

When we are calling the ArcGIS rest layer service from web application within LAN connection by using public/local ip, the Layers are loaded and no issues.

But when we are trying the same from outside network by using the public ip link of web application, ArcGIS rest layer services are not loaded. Because ArcGIS service url (http://xxx.xxx.x.xx:6080/arcgis/rest/) has local ip address. However the request is coming through web application which has public ip.

Is there any possibility to set the proxy to access ArcGIS server layers, or does the ArcGIS server also require public ip access?

This is my first web application with arcgis server.

1 Answer 1

4

Yes this is possible!

There are multiple approaches for this.

You can install Apache http server from here and you have to configure modjk module in this using modJk configuration (You will define worker and properties here and you can add your ArcGIS server IP here) Now you just have to call your public IP with arcgis and modjk module of Apache HTTP server will redirect the request to correct URL.

Sample modjk configuration is

Define 1 real worker named ajp13

worker.list=tomcatNode,gisServer

here in your case its public ip

ajp connector for tomcat

worker.tomcatNode.type=ajp13 worker.tomcatNode.host=192.168.1.2 worker.tomcatNode.port=8009 worker.tomcatNode.lbfactor=1 worker.tomcatNode.cachesize=10 worker.tomcatNode.cache_timeout=600 worker.tomcatNode.socket_keepalive=1 worker.tomcatNode.socket_timeout=300

here in your case this ip will be your arcgis server ip (local) but make sure its static and you have to enable AJP port on arcgis server

ajp connector for gis server

worker.gisServer.type=ajp13 worker.gisServer.host=192.168.1.1 worker.gisServer.port=6009 worker.gisServer.lbfactor=1 worker.gisServer.cachesize=10 worker.gisServer.cache_timeout=600 worker.gisServer.socket_keepalive=1 worker.gisServer.socket_timeout=1

Another way is to implement proxy page for your application. in which you will explicitly redirect the request. what you can do is you can get the request based on public IP and based on pattern "arcgis/rest/services" you can redirect it on your arcgis server IP.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.