The core question I have is how do I force the Neo4j web browser to attempt database connections at the address I choose?
I am running the Neo4j CE docker container along with an nginx reverse proxy container (and about 15 other containers) all on a single ec2 instance using docker-compose. (this is done for cost reasons)
As I have only one ec2 instance, I also have only a single target group that accepts traffic on port 80.
My domain is https, so all external traffic initially hits the load balancer on 443, but is then moved to port 80 by the load balancer before being directed to the target group also on port 80.
Within the docker-compose group of containers running on the ec2 instance is the nginx reverse proxy container that listens on port 80.
Using the load balancer and the reverse proxy, outside requests to https: // Browser Details go to the Neo4j container running within the docker-compose group which listens on port 7474.
This all works. I get the browser. But when I try to connect to the database using bolt, I run into problems.
Within the nginx config in another proxy route that directs calls to https: // mydomain.com/bolt to
the Neo4j container on port 7687. Also the nginx config is set to proxy websocket traffic on the bolt route.
In the docker-compose file, I set the environmental variable for the neo4j container with:
Using Chrome, I go to https : / /mydomain. com/browser and then attempt to connect to the database. I manually enter in the provided form (neo4j + s) mydomain. com/bolt:80. (The load balancer redirects calls on port 80 to port 443, just as a note)
This eventually times out. When you look at the Chrome browser console for errors you can see that a connection attempt in being made at wss: //mydomain.com:7687. It appears my advertised address is being completely ignored.