寫在前面,GIS服務器必須連通到外網,基於某些情況,可能一個機組有多態服務器,擔任不同的角色,有Web服務器、數據庫服務器和GIS服務器等,但是可能購買時只有一個外網IP,這樣是不行的。JS腳本運行在客戶端,gis服務地址相應的在客戶端調用,此時如果是內網ip地址,客戶端肯定是訪問不到的,不同於數據庫服務器,應用程序中,直接采用內網ip,因為后台代碼運行在服務器端,客戶端數據都是服務器返回的,並不實際存在客戶端直接從數據庫服務器取數據。所以,一個GIS系統中,GIS服務器必須要通向外網。
修改ArcGIS Server服務器端口:
(主要修改兩個文件,一個是Server安裝路徑下的server.xml配置,另一個是GIS服務路徑下的*.json配置)
1.找到Server安裝路徑下的server.xml,如:D:\Program Files\ArcGIS\Server\framework\runtime\tomcat\conf
用寫字板打開server.xml,找到如下節點:
<Connector connectionTimeout="20000" maxHttpHeaderSize="65535" maxPostSize="10485760" port="6080" protocol="HTTP/1.1" redirectPort="6443" server=" "/>
修改后server.xml:
<Connector connectionTimeout="20000" maxHttpHeaderSize="65535" maxPostSize="10485760" port="8080" protocol="HTTP/1.1" redirectPort="6443" server=" "/>
其中port屬性即是我們需要配置的端口,比如可以將6080修改成8080.
2.找到服務路徑下的*.json,如:D:\arcgisserver\config-store\machines
用寫字板打開*.json:
{"machineName":"DESKTOP","platform":"Windows 8-amd64-6.2","ports":{"JMXPort":4000,"OpenEJBPort":4001,"NamingPort":4002,"DerbyPort":4003,"tcpClusterPort":4004,"HTTP":6080},"ServerStartTime":1469026052886,"webServerMaxHeapSize":-1,"appServerMaxHeapSize":256,"socMaxHeapSize":64,"webServerSSLEnabled":false,"webServerCertificateAlias":"SelfSignedCertificate","adminURL":"http://DESKTOP:6080/arcgis/admin","configuredState":"STARTED","synchronize":false}
修改后*.json:
{"machineName":"DESKTOP","platform":"Windows 8-amd64-6.2","ports":{"JMXPort":4000,"OpenEJBPort":4001,"NamingPort":4002,"DerbyPort":4003,"tcpClusterPort":4004,"HTTP":8080},"ServerStartTime":1469026052886,"webServerMaxHeapSize":-1,"appServerMaxHeapSize":256,"socMaxHeapSize":64,"webServerSSLEnabled":false,"webServerCertificateAlias":"SelfSignedCertificate","adminURL":"http://DESKTOP:8080/arcgis/admin","configuredState":"STARTED","synchronize":false}
修改ports屬性中HTTP屬性,比如將6080修改為8080,修改adminURL,將6080修改為8080.
重啟ArcGIS Server服務,服務地址端口即被修改為8080.
注意,server.xml中端口應該和*.json中端口保持一致。