هل يمكنني تشغيل WordPress على نفس VPS مع عنوان IP ثانٍ؟

مرحبًا.

أعلم أنه يُنصح بتشغيل discourse على خادم خاص به، لكنني أدير هذا المشروع من جيبه الخاص، وهو في الأساس هواية لا توجد لها آفاق أو نية لتحقيق الربح في المدى القصير على الأقل.

لذلك، فكرت بدلاً من شراء خادم VPS آخر في طلب عنوان IP ثانٍ وتشغيل WordPress على خادم Apache افتراضي يعتمد على عنوان IP، مما سيساعد في الحفاظ على انخفاض التكاليف.

هل هذا ممكن أم أنه غير مستحسن؟

إذا كنت على دراية بتكوين الوكيل العكسي، فلن تحتاج إلى عنوان IP ثانٍ.

يمكنك تشغيل كل من Discourse و WordPress للاستماع على منافذ Unix (أو منافذ أعلى) وتشغيل برنامج وكيل عكسي أمامهما (أوصي بـ Caddy) لتقديم خدمة blog.example.com و forum.example.com على نفس عنوان IP.

ومع ذلك، إذا لم تكن على دراية بهذا النوع من الإعدادات، فإن تشغيل كل منهما على خادم VPS مستقل أسهل بكثير، حيث يمكنك ببساطة اتباع الوثائق الشاملة المتاحة لكل منهما.

هل يمكن أن يعمل هذا الإعداد الذي توصي به دون مشاكل؟

لقد قمت ببعض التعديلات باستخدام haproxy عندما كنت أحاول تشغيل discourse في البداية. كنت مبتدئًا إلى حد ما ولا أزال كذلك في مسائل الخوادم وما شابه، لكنني فعلت ذلك على أي حال وتعلمت بعض الشيء عن haproxy في هذه العملية. إذا كان ذاكرتي لا تخونني، فقد كانت هناك مشاكل مع SSL، وكان سلوك discourse غير مستقر إلى حد ما، لكنني أعتقد أنني ربما ارتكبت خطأ ما.

لذا، سؤالي هو: هل من الممكن تنفيذ الإعداد الذي توصي به دون عدم استقرار ومشاكل “غريبة”، ودون الحاجة إلى ضبط دقيق هائل؟

نعم، إذا قمت بإعداد وكيل العكس (reverse proxy) الخاص بك بشكل صحيح، فهذا ممكن. هذا هو الطريقة التي يُدار بها هذا الموقع نفسه.

ما لا يمكننا فعله هو تقديم الدعم لكل إعدادات وكيل العكس هنا.

رائع!

الالتماس الأخير: هل يمكنك ربطي ببعض وثائق المساعدة للقيام بهذا الإعداد؟

Nginx Run other websites on the same machine as Discourse

Caddy Use Caddy instead of NGINX as your reverse proxy

Apache Set up Discourse on a server with existing Apache sites

رائع.

أتذكر أنني عند إجراء الاختبارات الخاصة بي، تابعت دليل Apache. ما ليس واضحًا من المقال هو ما إذا كان يجب تعطيل SSL عند إعادة بناء Discourse (وما إذا كان تعطيله يتحقق ببساطة بعدم إدخال عنوان بريد إلكتروني لـ Let’s Encrypt)، وما هي المنافذ التي يجب “كشفها” في ملف discourse/app.yml (يوضح الدليل فقط كيف يجب أن تبدو السطر…

“8888:80” # توجيه منفذ المضيف 8888 إلى منفذ الحاوية 80 (HTTP)

… ولكنه لا يذكر شيئًا عن السطر التالي مباشرة في ملف app.yml (الذي يبدو افتراضيًا…

  • “443:443” # HTTPS

… كيف يجب أن يكون).

ملاحظة: أثناء النظر في ملف app.yml لكتابة هذا المنشور، أدركت أن الأسطر التالية موجودة فيه:

قم بإزالة التعليق عن هذين السطرين إذا كنت ترغب في إضافة Let’s Encrypt (HTTPS)

  • “templates/web.ssl.template.yml”
  • “templates/web.letsencrypt.ssl.template.yml”

… ومع ذلك، حتى الآن، يعمل تطبيق Discourse الخاص بي مع تفعيل SSL، لكن هذه الأسطر غير مفعلة. ما مدى أهمية تعليق هذه الأسطر للإعداد الحالي الخاص بي (بدون وكيل) أو للإعداد المطلوب (مع وكيل و Apache-WordPress)؟

:slight_smile:

إذا لم تكن معتادًا على وكلاء العكس، ويمكنك الحصول على عنوان IP ثانٍ بسهولة، فإن هذا ليس حلاً سيئًا. فقط قم بما يلي:

expose:
  - "192.168.1.1:80:80"   # http
  - "192.168.1.1:443:443" # https

هذا هو الحل.

شكرًا.
.

يمكنك استخدام نفس الحيلة مع Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.

شكرًا لك، لقد نجح الأمر معي. يوفر موفر VPS الخاص بي عناوين IP عائمة “رخيصة” بالإضافة إلى العنوان الرئيسي المهيأ على VPS. هذا الحل أنيق جدًا بالنسبة لي. يجب توثيقه بشكل أفضل نظرًا لبساطته.

expose:
   - "my_floating_ip:80:80"
   - "my_floating_ip:443:443"

هل نجح ذلك؟ لم أكن أتوقع أن تعرف القطرة عن عنوان IP العائم.

حسنًا، إنه يعمل بشكل جيد:

أولاً، اشترِ عنوان IP عائم واربطه بخادم VPS الخاص بك.
ثم قم بإعداد الخادم لاستخدامه:

vim /etc/network/interfaces.d/60-my-floating-ip.cfg

auto eth0:1
iface eth0:1 inet static
    address your.Float.ing.IP
    netmask 32

ثم احفظ الملف وأعد تشغيل خدمة الشبكة:

sudo service networking restart

الآن أصبح لدي عنوانان IP: أستخدم العنوان الرئيسي لتكوين عدة مواقع nginx، يرجى ملاحظة سطور التكوين في /etc/nginx/sites-enabled:

listen my_main_IP:80 myserver.name;
listen my_main_IP:443 ssl http2 myserver.name;

أما عنوان IP العائم فيُضاف في ملف /var/discourse/containers/app.yml على النحو التالي:

expose:
   - "my_floating_ip:80:80"
   - "my_floating_ip:443:443"

تحقق من أن كل شيء على ما يرام (تم تعديل عناوين IP الأصلية لتصبح floating_ip و main_ip):

# netstat -taunp | grep -i listen
tcp        0      0 floating_ip:80      0.0.0.0:*               LISTEN      19775/docker-proxy  
tcp        0      0 main_ip:80          0.0.0.0:*               LISTEN      13151/nginx: master 
tcp        0      0 0.0.0.0:22          0.0.0.0:*               LISTEN      725/sshd            
tcp        0      0 floating_ip:443     0.0.0.0:*               LISTEN      19763/docker-proxy  
tcp        0      0 main_ip:443         0.0.0.0:*               LISTEN      13151/nginx: master 
tcp6       0      0 :::22                      :::*                    LISTEN      725/sshd       

لا أعرف ما إذا كان من المقبول ذكر الأسماء، لكن الخادم مستضاف على منصة Hetzner Cloud، وتتميز ميزة عنوان IP العائم بالراحة والسعر المناسب.

أها! لم أكن أعرف أنه يمكنك فعل ذلك!

يمكن للمرء أيضًا استخدام هذه الحيلة لتشغيل عدة خوادم بريد واردة لعدة نطاقات

عمل رائع!

أها! وهذا هو السبب في أنني لم أعرف كيف يعمل الأمر.

أعلم أن هذا موضوع قديم ولكني أردت أن أشكركم يا رفاق، فقد ينقذ هذا أيامًا من العمل على مشكلة مماثلة كنت أتعامل معها. شكرًا لكم على مشاركة هذه المعلومات التي لا تقدر بثمن مع الجميع!!