У меня есть сервер, который запускает несколько экземпляров flask с использованием gunicorn.socket, и сервер apache2 настроен на прокси-запрос:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / unix:///run/gunicorn_site0.sock|http://127.0.1.1/
ProxyPassReverse / unix:///run/gunicorn_site0.sock|http://127.0.1.1/
# RewriteEngine On
# RewriteRule ^/0/(.*)$ unix:///run/gunicorn_site0.sock|http://127.0.1.1/$1 [P,L]
# ProxyPass /1 unix:///run/gunicorn_site1.sock|http://127.0.1.1/
# ProxyPassReverse /1 unix:///run/gunicorn_site1.sock|http://127.0.1.1/
# ProxyPass /2 unix:///run/gunicorn_site2.sock|http://127.0.1.1/
# ProxyPassReverse /2 unix:///run/gunicorn_site2.sock|http://127.0.1.1/
</VirtualHost>
Как показано выше, если я включаю только site0
все работает нормально, то есть, когда я набираю 127.0.1.1/ в браузере, он переходит на gunicorn_site0.sock
с URL 127.0.1.1/
Однако, что я действительно хочу сделать, это разрешить следующее:
# Typed in address bar Actual request
http://127.0.1.1/0/some/path -> gunicorn_site0.sock 127.0.1.1/some/path
http://127.0.1.1/1/some/path -> gunicorn_site1.sock 127.0.1.1/some/path
http://127.0.1.1/2/some/path -> gunicorn_site2.sock 127.0.1.1/some/path
Я пробовал несколько способов с RewriteRule, но безуспешно.
Есть идеи?