У меня есть сервер на Ubuntu. Я могу получить доступ к этому серверу через обратный прокси-сервер с Apache. Теперь приходит то, чем я хочу заниматься. Я хочу перенаправить на другой сервер (не на тот же компьютер), когда запрошены эти uris:
Uri должен быть таким же, поэтому, если я запрошу localhost/osimis-viewer/app/index.html?study={ID}
Я должен быть перенаправлен на new-ip/osimis-viewer/app/index.html?study={ID}
Я пытаюсь сделать это через mod_rewrite, но не могу заставить его работать.
Некоторая помощь будет оценена.
Конфигурационный файл для сайтов с поддержкой выглядит примерно так:
<VirtualHost *:80>
ProcyRequests Off
ProxyPass "/" "http://localhost:8042/"
ProxyPassReverse "/" "http://localhost:8042/"
ErrorLog /var/log/apache2/orthanc-error.log
CustomLog /var/log/apache2/orthanc-access.log combined
LogLevel error
// Some tries with RewriteRule
</VirtualHost>
Нашел способ заставить его работать, по крайней мере, на данный момент. Теперь это конфигурация:
<VirtualHost *:80>
ProxyRequests Off
RewriteEngine on
RewriteCond %{QUERY_STRING} series [OR]
RewriteCond %{QUERY_STRING} study
Rewriterule "^/osimis-viewer/app/index.html" "http://10.8.0.11:8042/osimis-vi$
Rewriterule "^/web-viewer/app/viewer.html" "http://10.8.0.11:8042/web-viewer/$
ProxyPass "/" "http://localhost:8042/"
ProxyPassReverse "/" "http://localhost:8042/"
ErrorLog /var/log/apache2/orthanc-error.log
CustomLog /var/log/apache2/orthanc-access.log combined
LogLevel error
</VirtualHost>
Проблема, вероятно, в том, что вы добавили дополнительные настройки обратного прокси после более инклюзивного ProxyPass "/"
директива, и поэтому они никогда не были применимы.
Правила ProxyPass проверяются в порядке настройки. Первое подходящее правило побеждает, поэтому попробуйте:
Пытаться:
<VirtualHost *:80>
ProxyRequests Off
ProxyPass "/osimis-viewer/app/index.html" "http://new-ip/osimis-viewer/app/index.html"
ProxyPassReverse "/osimis-viewer/app/index.html" "http://new-ip/osimis-viewer/app/index.html"
ProxyPass "/" "http://localhost:8042/"
ProxyPassReverse "/" "http://localhost:8042/"
ErrorLog /var/log/apache2/orthanc-error.log
CustomLog /var/log/apache2/orthanc-access.log combined
LogLevel error
</VirtualHost>