We use Docker Compose for our Laravel application development. The two main Docker containers in our Compose configuration are:
custom nginx Docker container with nginx micro-caching and request throttling - we would like to run a single instance of it
custom PHP Docker Container for Laravel itself; we would like to scale it horizontally; nginx is to round-robin requests to multiple Laravel containers (or connect to a single connection point managed by DigitalOcean App Platform).
We are considering App Platform for deployment.
Is this setup possible with the App Platform?
We cannot eliminate nginx because of its role in micro-caching and request throttling; we would like Laravel not to do it because nginx is much more efficient and less resource greedy at these tasks.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
@ReWild 👋
This setup is possible on the App Platform! You’re describing 2
service
components; 1 for thenginx
service, and another for thelaravel
service — where each service can be scaled independently.Your
nginx
configuration can reference yourlaravel
service on the application internal network using a hostname matching your component name. So if your component name islaravel
, then you can referencehttp://laravel
from yournginx
config in order to route to it internally as desired.It’s worth noting that the App Platform does have an ingress gateway built-in (via Istio) that load-balances incoming traffic across all instances of your services, so it may not be necessary to do this yourself unless you want more control over other features that aren’t supported yet (like request throttling that you mentioned).