Hi Valentin,
I am not sure that what you provided is exactly what I am trying to achieve.
What I want is if someone hits port 80 (HTTP) with /account that they redirect to /account on port 443 (HTTPS). However, if they come in on port 443 (HTTPS) with /account that they remain on port 443 (HTTPS). Similar rules exist for keeping certain URI's on HTTP or allowing certain URIs to use HTTP/HTTPS (basically we don't care).
With the example you provided I would need to embed these location directives into the respective Server sections of our main template file (unless I am missing something) and thus would introduce domain / application specific behaviour into the template VS. how we are doing it now in that application specific behaviour is limited to pre-pended or post-pended include files so as to create clean separation across multiple domains.
While the map directive may not be the most efficient it has the benefits of being the most compact, easiest to maintain and that it can be decoupled from our core common Nginx template files i.e. it can live outside the Server directive. So at this point its a tradeoff between simplicity and speed.
Just how bad will the map (say about a dozen mappings) perform in comparison to location directives?