私は、Apache2 をコンテナ内の Unix ソケットへのリバースプロキシとして使用したテスト環境で、Apache2 を「問題なく」動作させることができました。
私が確認した唯一の違い(注:数時間のテストのみで、完全な検証ではありません)は以下の通りです。
- Apache2 は、コンテナ内の共有ボリュームにある Unix ソケットへのシンボリックリンクでは動作しません。
- 大まかなテストでは Apache2 はやや遅かったものの、その差はほとんどありませんでした。
個人的には、技術に関する宗教戦争は好まないため、「Apache2 は多くの問題を引き起こす」という意見には賛成できません。私のテスト中、Apache2 に起因する負の事象は一切発生しませんでした。
以下は、私が Apache2 で使用したコア設定です(HTTP 環境ですが、LETSENCRYPT とも問題なく動作しました)。
# 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>
注:force_https が設定されているにもかかわらず HTTP でサービスが提供されてしまう事象が発生したのは、/uploads ディレクトリにファイルが存在しない場合のみでした。これはもちろん、Apache2 と nginx のどちらをリバースプロキシとして使用するかの問題とは無関係です。