How to access ArcGIS Portal from server's local IP address instead of it's domain name?

932
2
Jump to solution
08-04-2020 04:56 PM
teofilosalgado
New Contributor II

Hi all!

Recently, we have been trying to implement a Portal for ArcGIS Server 10.7.1 instance in our infrastructure but we've stumbled in an issue with our NGINX reverse proxy service. Currently, on my Windows Server machine I can access my Portal trough the address: https://win-q0ejvg3fcqh.arcgis.local:7443/arcgis/home/index.html, but whenever I try to access it via my machine fixed local IP like so: https://192.168.25.209:7443/arcgis/home/index.html I get redirected to https://win-q0ejvg3fcqh.arcgis.local:7443/arcgis/home/index.html, my machine name and domain.

I need to be able to access my Portal from it's server local IP address so I can forward it's ports to the internet via my NGINX server, how could I accomplish that? Currently, I don't have any Web Adaptor installed and would really like to remain using my NGINX alone, due to company restrictions.

Any help will be very appreciated,
Cheers.

0 Kudos
2 Solutions

Accepted Solutions
ChristopherPawlyszyn
Esri Contributor

Hello João Victor Teófilo Salgado,

From what I understand you seem to need a method to have Portal using the private IP address for it's site configuration. This is typically done in our CloudFormation template deployments in AWS as well, and would need to be defined as a hostname.properties entry prior to site creation.

Installing Portal for ArcGIS—Portal for ArcGIS | Documentation for ArcGIS Enterprise 

Additionally, there are more requirements for your NGINX and Portal configuration that are outlined in this documentation.

Configure your portal to use a reverse proxy server—Portal for ArcGIS | Documentation for ArcGIS Ent....

Customers tend to have the most issue with making sure the location headers in 30x responses are re-written to the WebContextURL, in my experience. When they have those issues, an easy workaround is to implement the web adaptors in front of Portal and Server and still have NGINX pass the traffic to those endpoints. If that is something you choose not to do, this information may be helpful as well.

Nginx (Reverse Proxy) and ArcGis Portal

Best of luck!

View solution in original post

teofilosalgado
New Contributor II

Hi Christopher,

I managed to make it work with plain NGINX, I was missing these headers in my configuration:
proxy_set_header X-Forwarded-Host $host:$server_port;

proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


The links you've sent were very helpful, specially the last one! Thank you very much for your help!

View solution in original post

2 Replies
ChristopherPawlyszyn
Esri Contributor

Hello João Victor Teófilo Salgado,

From what I understand you seem to need a method to have Portal using the private IP address for it's site configuration. This is typically done in our CloudFormation template deployments in AWS as well, and would need to be defined as a hostname.properties entry prior to site creation.

Installing Portal for ArcGIS—Portal for ArcGIS | Documentation for ArcGIS Enterprise 

Additionally, there are more requirements for your NGINX and Portal configuration that are outlined in this documentation.

Configure your portal to use a reverse proxy server—Portal for ArcGIS | Documentation for ArcGIS Ent....

Customers tend to have the most issue with making sure the location headers in 30x responses are re-written to the WebContextURL, in my experience. When they have those issues, an easy workaround is to implement the web adaptors in front of Portal and Server and still have NGINX pass the traffic to those endpoints. If that is something you choose not to do, this information may be helpful as well.

Nginx (Reverse Proxy) and ArcGis Portal

Best of luck!

View solution in original post

teofilosalgado
New Contributor II

Hi Christopher,

I managed to make it work with plain NGINX, I was missing these headers in my configuration:
proxy_set_header X-Forwarded-Host $host:$server_port;

proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


The links you've sent were very helpful, specially the last one! Thank you very much for your help!

View solution in original post