обратный прокси apache с модом перезаписи

Я настраиваю новый виртуальный хост на моем обратном прокси-сервере apache с помощью мода перезаписи, при тестировании конфигурации все работает нормально, но не работает только одна страница (страница изображения). при нажатии на страницу изображения я получаю локальный URL-адрес в браузере ( https: // localserver: 9251 / share / collab? collabSession = ea4a80bf-6c19-473b-ad08-bdce391dbe19 & type = join & user = username & isInitiator = true ) .

порты 9251, 433 и 80 активированы в ports.conf

там, под моей конфигурацией виртуальных хостов:

<VirtualHost *:80>
    ServerName publicdomaine.com
    ServerAlias www.publicdomaine.com
    Redirect Permanent / https://publicdomaine.com
</VirtualHost>

<VirtualHost *:443>
    ServerName publicdomaine.com
    ServerAlias www.publicdomaine.com

    <IfModule mod_proxy.c>
        SetEnv proxy-nokeepalive 1

        SetEnv proxy-initial-not-pooled 1
        ProxyRequests Off
        ProxyPreserveHost Off

        ProxyPass / https://localserver/
        ProxyPassReverse / https://localserver/
    </IfModule>

    SSLEngine on
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    SSLCertificateKeyFile /etc/apache2/cert/mykey.pem
    SSLCertificateFile /etc/apache2/cert/mycert.pem
    SSLCertificateChainFile /etc/apache2/cert/bundle.crt

    RewriteEngine On
    LogLevel alert rewrite:trace6

    RewriteCond %{QUERY_STRING} ^(.*)&studyUid=(.*)
    RewriteCond %{QUERY_STRING} ^host=publicdomaine.com(.*)$
    RewriteRule ^/ris/web/imageshare/startSession - [E=SUI_VAL:%1]

    RewriteRule /ris/web/imageshare/startSession https://localserver/ris/web/imageshare/startSession?host=cimcsp1.cimy.local%{ENV:SUI_VAL} [P,QSA,L]

    ErrorLog /var/log/signoff-error_log

    CustomLog /var/log/signoff-access_log combined
</VirtualHost>

<VirtualHost *:9251>
    SetEnv proxy-nokeepalive 1
    SetEnv proxy-initial-not-pooled 1
    ProxyRequests Off
    ProxyPreserveHost Off

    ProxyPass / https://localserver:9251/
    ProxyPassReverse / https://localserver:9251/
</VirtualHost>

Я наблюдал обмен http со скрипачом. обмен сообщениями:

GET https://publichostname/ris/web/imageshare/startSession?host=publichostname&studyUid=1.3.51.0.1.1.10.233.24.237.333827.7779290494 HTTP/1.1

обратный прокси-сервер перезаписывает параметр host на localserver:

GET https://publichostname/ris/web/imageshare/startSession?host=localserver&studyUid=1.3.51.0.1.1.10.233.24.237.333827.7779290494 HTTP/1.1

и получает ответ JSON:

{"initiatorLink": "https: // localserver: 9251 / share / collab? collabSession = 74bea62c- 474a-4ee5-9d74-e793fef66738 & type = join & user = username & isInitiator = true "," studyUid ":" 1.3.51.0.1.1.10.233.24.237.333827.7779290494 "," baseLink ":" https: // localserver: 9251 / share /? CollabSession = 74bea62c-474a-4ee5-9d74-e793fef66738 "," closedLink ": null}

этот ответ туннелирует меня на:

CONNECT localserver:9251 HTTP/1.1
Host: localserver:9251

это должно туннелировать меня с обратным прокси на:

CONNECT publichostname:9251 HTTP/1.1
Host: publichostname:9251
1
задан 7 June 2019 в 16:36
2 ответа

нашел !!! Я добавил мод подстановки, чтобы изменить ответ сервера, и он работает !!!!! commande добавил:

AddOutputFilterByType SUBSTITUTE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript application/json
Substitute "s|https:\/\/localserver:9251|https:\/\/publichostname:9251|ni"

спасибо за вашу помощь !!!!

0
ответ дан 3 December 2019 в 23:04

Opsyon ki pi bon ta dwe konfigirasyon sèvè aplikasyon ou a jenere URL yo kòrèk yo dwe itilize ak prokurasyon an.

Sepandan, si ou pa ka fè sa, ou ka itilize yon lòt Apache modil, mod_proxy_html . Modil sa a bay direktiv la ProxyHTMLURLMap , ki ou ka itilize yo reyekri repons lan.

ProxyPass / https://localserver/
ProxyPassReverse / https://localserver/
SetOutputFilter proxy-html # make sure the output is filtered by proxy-html
ProxyHTMLURLMap https://localserver:9251/ https://publichostname:9251/
ProxyHTMLExtended On       # by default only HTML output is filtered

Sa a ta dwe reyekri tout ensidan nan lokal la URL server nan repons lan ak URL la publichostname.

Remake byen ke sa a mete plis chaje sou serveur a, depi li te analize ak modifye chak repons olye pou yo jis pase l 'nan. Konfigirasyon sèvè aplikasyon an byen ta dwe yon metòd pi pito.

1
ответ дан 3 December 2019 в 23:04

Теги

Похожие вопросы