regex - digitalocean - Nginx-Reescribe el request_uri antes de uwsgi_pass
use a production wsgi server instead (2)
Acabo de encontrar el mismo problema, y aquí hay una solución.
location /one {
include uwsgi_params;
uwsgi_pass unix:///.../one.sock;
uwsgi_param SCRIPT_NAME /one;
uwsgi_modifier1 30;
}
Puede encontrar más información sobre uwsgi_modifier1
aquí: http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html#hosting-multiple-apps-in-the-same-process-aka-managing-script-name-and-path-info
Tengo un Nginx vhost que está configurado como tal:
...
location /one {
include uwsgi_params;
uwsgi_pass unix:///.../one.sock;
}
location /two {
include uwsgi_params;
uwsgi_pass unix:///.../two.sock
}
...
Esta es una configuración simplificada por supuesto
Cuando solicito /one/something
me gustaría que mi script de Python reciba /something
como request_uri
.
Estoy usando BottlePy pero me gustaría que Nginx lo maneje y no en mi código Python.
¿Puedo hacer algo como uwsgi_param REQUEST_URI replace($request_uri, ''^/one'', '''')
?
Editar
Aquí está la solicitud de mi código Python: [pid: 30052 | app: 0 | req: 1/1] () {42 vars in 844 bytes} [Tue Aug 21 14:22:07 2012] GET / one / something = > genera 0 bytes en 4 msegs (HTTP / 1.1 200) 2 encabezados en 85 bytes (0 cambia en el núcleo 0)
Así que Python está bien, pero uWSGI no lo está.
¿Cómo arreglar eso?
location /one {
rewrite /one/(.+) /$1 break;
include uwsgi_params;
uwsgi_pass unix:///.../one.sock;
}