النقاش حول وكيل عكسي و HTTPS

نجحت في تشغيل Apache2 “بدون أي مشكلة” في بيئة اختبارية باستخدام Apache2 كوكيل عكسي (reverse proxy) لملف socket في حاوية يونكس:

الفرق الوحيد الذي وجدته (ملاحظة: اختبار لمدة بضع ساعات فقط، وليس شاملًا) هو:

  • لن يعمل Apache2 مع رابط رمزي (symlink) إلى ملف socket في المجلد المشترك داخل الحاوية؛
  • كان 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>

ملاحظة: المرة الوحيدة التي واجهنا فيها مشاكل في تقديم المحتوى عبر HTTP حتى مع تعيين force_https كانت عندما كانت الملفات مفقودة في مجلد /uploads. ولكن هذا (طبعًا) لا علاقة له بـ Apache2 مقابل nginx كوكيل عكسي.