Adding a Reverse Proxy to the Compose Environment

Explore setting up a reverse proxy with Nginx and fixing gRPC connections.

We can quickly set up a reverse proxy using Nginx, a popular web server, reverse proxy, and load balancer application. We only need to set up a reverse proxy today, and thankfully, it is going to be quite easy.

Configuring an Nginx reverse proxy for microservices

  • First, we define a configuration file for the application called /docker/nginx.conf:

worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream docker-baskets {
server baskets:8080;
}
# ... plus upstream blocks for each other microservice
server {
listen 8080;
location /api/baskets {
proxy_pass http://docker-baskets;
proxy_redirect off;
}
location /baskets-spec/ {
proxy_pass http://docker-baskets;
proxy_redirect off;
}
# ... plus location block pairs for each other microservice
# then one more location block for the swagger-ui files
location / {
proxy_pass http://docker-baskets;
proxy_redirect off;
}
}
Application configuration file

We have only included the baskets microservice as an example in the configuration file example, but each microservice would need to have an upstream configuration and a pair of location configurations so that the reverse proxy could properly redirect the requests to where they need to go. A final location block is used to serve the Swagger UI from any microservice.

  • Secondly, we need to remove the port configurations for each microservice and add the reverse proxy as a new service to the ... ...

Get hands-on with 1400+ tech skills courses.