¿Cómo puedo servir proyectos nesteds en Nginx?

Tengo un proyecto Lumen API con múltiples tags git para el control de versiones de API. Así que tengo que implementar varias cajas del proyecto.

La estructura de la carpeta en el server se ve así:

var www api-staging master v1 public index.php ... v2 public index.php ... lastest public index.php ... ... 

Ahora me gustaría servir los proyectos a través de nginx para que la URL se vea así.

http: //BRANCH.domain.tld/VERSION/ ej. http: //master.domain.tld/lastest/

He intentado mucho con regexp, pero nada funcionó realmente. Espero que me puedas ayudar.

Tendrá que capturar el BRANCH utilizando una expresión regular server_name statement. Ver este documento para más.

La raíz se construye agregando /public a la VERSION capturada, que requiere una location expresión regular y una statement de alias . Ver este documento para más.

Por ejemplo:

 server { ... server_name ~^(?<branch>.+)\.domain\.tld$; location ~ ^/(?<version>[^/]+)/(?<name>.*)$ { alias /var/www/api-staging/$branch$version/public/$name; if (!-e $request_filename) { rewrite ^ $version/index.php last; } location ~ \.php$ { if (!-f $request_filename) { return 404; } include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; ... } } }