Конфигурация обратного прокси SSL в Apache (Centos 7) - PullRequest
0 голосов
/ 25 января 2019

У меня есть служба localhost, работающая на http://localhost:8888/

Приведенная ниже конфигурация Apache делает любой запрос к myapp.example.com, как http, так и https, чтобы использовать HTTPS и действовать в качестве обратного прокси.

<VirtualHost *:80>   
  ServerName myapp.example.com
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>


<VirtualHost *:443>    
  ServerName myapp.example.com
  SSLEngine on
  SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
  SSLHonorCipherOrder On
  SSLCertificateFile /etc/letsencrypt/live/myapp.example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/myapp.example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/myapp.example.com/chain.pem

  <Location />
    ProxyPass http://localhost:8888/
    ProxyPassReverse http://localhost:8888/
  </Location>  
</VirtualHost>

Тем не менее, я хотел бы следующую схему прокси:

http://myapp.example.com/app1   --> http://localhost:8888/
http://myapp.example.com/app1/  --> http://localhost:8888/
https://myapp.example.com/app1  --> http://localhost:8888/
https://myapp.example.com/app1/ --> http://localhost:8888/
http://myapp.example.com/app2   --> http://localhost:8889/
http://myapp.example.com/app2/  --> http://localhost:8889/
https://myapp.example.com/app2  --> http://localhost:8889/
https://myapp.example.com/app2/ --> http://localhost:8889/

Всегда гарантируя, что HTTPS установлен.

Я безуспешно пробовал схему, подобную этой:

ProxyPreserveHost   On
RewriteEngine       On

RewriteRule         ^/appX/(.*) http://x.x.x.x:8000/$1 [P,L]
ProxyPassReverse    /appX/      http://x.x.x.x:8000/

Может ли кто-нибудь помочь мне определить, что должно быть изменено в файле конфигурации?

Версия сервера: Apache / 2.4.6 (CentOS) CentOS 7

...