Ho fatto funzionare Apache2 “senza problemi” in un ambiente di test, configurandolo come reverse proxy verso una socket Unix nel contenitore:
L’unica differenza che ho riscontrato (nota: solo alcune ore di test, nulla di completo) è stata:
- Apache2 non funziona con un collegamento simbolico alla socket Unix nel volume condiviso del contenitore;
- Apache2 è stato leggermente più lento in un test approssimativo, ma non di molto.
Personalmente, non sono un fan delle guerre religiose sulle tecnologie; quindi non condivido l’affermazione che “Apache2 ti darà molti problemi”. Non ho riscontrato alcun problema negativo con Apache2 durante i miei test.
Ecco la configurazione di base che ho utilizzato con Apache2 (HTTP, funzionava perfettamente anche con LETSENCRYPT, a proposito):
# cat discourse.example.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName discourse.example.com
DocumentRoot /website/discourse
RewriteEngine On
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / unix:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/
ProxyPassReverse / unix:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/
ErrorLog /var/log/apache2/discourse.error.log
LogLevel warn
CustomLog /var/log/apache2/discourse.access.log combined
RewriteCond %{SERVER_NAME} =discourse.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Nota: l’unica volta in cui abbiamo riscontrato problemi con la consegna di contenuti HTTP anche quando force_https era impostato è stata quando mancavano file nella directory /uploads, ma questo (ovviamente) non è correlato a Apache2 rispetto a nginx come reverse proxy.