Proxy
Overview
The Proxy is a component that allows you to intercept and modify requests and responses. It comes to solve the multi projects communication problem by providing a way to redirect requests to the correct project.
This is actually a simple Apache server that is configured to act as a proxy.
Usage
Assume that you have two projects running on your machine. As you can't have two projects running on the same port, you need to use the proxy to redirect the requests to the correct project.
Note that before starting the proxy, you need to configure your projects to listen on different ports than the 80 and the 443.
- my_app: http://my_app.dev.local: Apache running on 8081 for http
- my_api: http://my_api.dev.local: Apache running on 8082 for http
Create a configuration file
./httpd-vhosts.conf
<VirtualHost *:80>
ServerName my_app.dev.local
ProxyPreserveHost On
ProxyRequests On
ProxyPass / http://host.docker.internal:8081/
ProxyPassReverse / http://host.docker.internal:8081/
ProxyTimeout 300
</VirtualHost>
<VirtualHost *:80>
ServerName my_api.dev.local
ProxyPreserveHost On
ProxyRequests On
ProxyPass / http://host.docker.internal:8082/
ProxyPassReverse / http://host.docker.internal:8082/
ProxyTimeout 300
</VirtualHost>
Start
dcmd proxy start ./httpd-vhosts.conf
Stop
dcmd proxy stop
Update
dcmd proxy update