Apache ProxyPass только один файл на другой порт localhost?

Мне не удалось найти решение именно этой проблемы:

  • У меня есть одно приложение, работающее на localhost: 3000
  • У меня есть прокси, настроенный для моего localhost: 3000 приложение с qa.mysite.com (для других js)
  • Я добавил второе приложение, работающее на localhost: 3333

Первое приложение должно ссылаться на некоторые файлы localhost: 3333 css и js:

<link rel="stylesheet" href="/css/my-css.css"/>
<script src="/js/my-js.js" defer></script>

Я пробовал это conf (и варианты):

<VirtualHost *:443>
    ServerName qa.mysite.com
    SSLEngine on
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    SSLCertificateFile "/etc/apache2/server.crt"
    SSLCertificateKeyFile "/etc/apache2/server.key"
    ProxyVia Full
    ProxyPreserveHost On
    ProxyPass "/" "http://localhost:3000/"
    ProxyPassReverse "/" "http://localhost:3000/"

    ProxyPass "/css/my-css.css" "http://localhost:3333/css/my-css.css"
    ProxyPassReverse "/css/my-css.css" "http://localhost:3333/css/my-css.css"
    ProxyPass "/js/my-js.js" "http://localhost:3333/js/my-js.js"
    ProxyPassReverse "/js/my-js.js" "http://localhost:3333/js/my-js.js"

</VirtualHost>
  • При нажатии на qa.mysite.com первое приложение запускается на localhost: 3000.
  • Но также ошибки CORS или отказ в подключении.

Есть идеи, что я делаю неправильно? :)

1
задан 1 February 2018 в 03:36
1 ответ

Сначала вам нужно указать более конкретные правила ProxyPass. "/css/my-css.css" сначала оценит "/". Так как это верно, вы получите порт 3000.

Поместите ProxyPass в "/" последним, поскольку это полный откат.

<VirtualHost *:443>
    ServerName qa.mysite.com
    SSLEngine on
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    SSLCertificateFile "/etc/apache2/server.crt"
    SSLCertificateKeyFile "/etc/apache2/server.key"
    ProxyVia Full
    ProxyPreserveHost On

        #Specific /css
    ProxyPass "/css/my-css.css" "http://localhost:3333/css/my-css.css"
    ProxyPassReverse "/css/my-css.css" "http://localhost:3333/css/my-css.css"

        #Specific /js
    ProxyPass "/js/my-js.js" "http://localhost:3333/js/my-js.js"
    ProxyPassReverse "/js/my-js.js" "http://localhost:3333/js/my-js.js"

       #Catch ALL for servername
    ProxyPass "/" "http://localhost:3000/"
    ProxyPassReverse "/" "http://localhost:3000/"
</VirtualHost>
1
ответ дан 3 December 2019 в 23:20

Теги

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