Я узнал, что напрямую показывать 8080 в моих портах на виртуальной машине - плохая практика, и все должно go через https. В моей ситуации apache отправляет данные c с заданного порта клиенту через порт 443, что не является проблемой. Но серверная часть размещается в springboot и работает в порту 8080.
Как настроить apache таким образом, чтобы, если запрос равен https://example.com/, он обслуживал содержимое c и т. Д. если запрос https://example.com/api, то перенаправить на порт 8080, а также сохранить безопасность ssl?
Я использовал certbot для генерации ssl и перенаправления.
example.com.conf file :
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
example.com-le-ssl.conf file:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>