Criação de capturas regex para vários locais.
Estrutura da árvore:
/home/user/webapps/
├── index.html <= content: root.
├── osqa
│ ├── index.html <= content: osqa test A.
│ ├── osqa <= django project
│ │ ├── index.html <= content: osqa test B.
│ │ └── osqa
│ │ ├── settings.py
│ │ └── wsgi.py
│ ├── run
│ └── static
└── forum
├── index.html <= content: forum test A.
├── forum <= django project
│ ├── index.html <= content: forum test B.
│ └── forum
│ ├── settings.py
│ └── wsgi.py
├── run
└── static
Esta configuração do nginx está funcionando:
server {
listen 8080;
server_name localhost;
root /home/user/webapps/;
location /osqa/ {
alias /home/user/webapps/osqa/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass h ttp://unix:/home/user/webapps/osqa/run/gunicorn.sock:/;
}
location /forum/ {
alias /home/user/webapps/forum/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass h ttp://unix:/home/user/webapps/forum/run/gunicorn.sock:/;
}
tentando juntar esses locais em um regex PCRE
location ~ webapps\/(?P<app>[\w-_]+) {
alias /home/user/webapps/$app/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass h ttp://unix:/home/user/webapps/$app/run/gunicorn.sock:/;
}
o que eu ganho:
localhost:8080/osqa/osqa/
returns: osqa test B
localhost:8080/osqa/
returns: 403 Forbidden
localhost:8080
returns: osqa test A
o que eu esperava:
localhost:8080/osqa/osqa/
returns: osqa test B
localhost:8080/osqa/
returns: django site
localhost:8080
returns: root
Eu li sobre user dir , location , SF post e ainda não consigo descobrir como fazer isso.
O que devo adicionar ou alterar, onde devo procurar? (estou quase sem ideias)
A correspondência é executada em um URI normalizado, não em um caminho raiz.
Então, é isso
Deveria estar
e está funcionando agora.