У меня есть служба 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