We are attempting to run redash using ECS. The redash deployment/architecture has many components (the database, redis, redash server, NGINX, scheduler, etc.) and we’ve broken them up into appropriate independent services. For example, we’re using RDS to provide the database and we’ve separated redis into its own dedicated service. The redash server itself is a second service, as are the scheduler and workers. This allows each component to fail/restart and scale appropriately.
In the course of working on this, we inadvertently misconfigured NGINX. We were not routing any traffic to NGINX at all. What we discovered is that redash seems to work perfectly fine without it. We’ve tested this on our workstations and in AWS. If we access localhost:5000 (redash) from our web browser or localhost:80 (NGINX) the behavior is exactly the same. We get a working redash web app, with or without NGINX
We looked at the redash Dockerfile for the NGINX component and it seems that NGINX is used as a proxy to route traffic through directly to the redash server. We can’t figure out why this is needed.
Can you please explain the purpose of NGINX in the redash architecture? We’ve not been able to find anything about this topic in the documentation or user forums. It seems not to be needed at all and we’d just as soon not run it, if it’s not required.
- Redash Version: 8
- Browser/OS: chrome/firefox
- How did you install Redash: We’re using ECS, with an RDS database and each redash “server” component as an independent ECS Service. i.e. we have a redis ECS Service and a scheduler ECS Service, etc.