nginx – perché non posso utilizzare le variables nel path proxy_pass?

Perché non posso utilizzare l'utente di variabile $ in proxy_pass – come nell'esempio qui sotto?

server { listen 80; server_name ~^(?P<user>[az|AZ|0-9|_|-]+)\.example\.net$; root /home/$user/webapps/; location /app/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unix:/home/$user/webapps/app/run/gunicorn.sock:/; } } 

È ansible realizzare o dovrei rinunciare?

E questo sarebbe perfetto, ma non funziona.

 server { listen 80; server_name ~^(?P<user>[az|AZ|0-9|_|-]+)\.example\.net$; root /home/$user/webapps/; location ~ ^\/(?P<app>[\w-_]+)(\/.*)?$ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unix:/home/$user/webapps/$app/run/gunicorn.sock:/; } } 

Ho letto questo e quello e qui ma nessuno di loro copre proxy_pass attraverso socket unix.

2 Solutions collect form web for “nginx – perché non posso utilizzare le variables nel path proxy_pass?”

Le direttive del passaggio di proxy non visualizzano $ user e $ app come parametro nel tuo caso wherete dirgli attraverso le $is_args e $args così:

 proxy_pass http://unix:/home/$user$is_args$args/webapps/$app$is_args$args/run/gunicorn.sock:/; 

Trovato che 'uri' era il problema non variables, quindi la corretta configuration dovrebbe essere

 proxy_pass http://unix:/home/$user/webapps/$app/run/gunicorn.sock:$request_uri; 

dovrei triggersre il debug più veloce, grazie per il supporto.

Non riesco più a controllare questa soluzione, questa è la mia ipotesi in questo momento – perché sono andato con una conf per app, cercherò di unificare la mia configuration più tardi.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.