الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
تثبيت وإعداد خوادم الويب Nginx و Apache، مقارنة الإمكانيات، إنشاء المضيفات الافتراضية، إعداد SSL/TLS وإدارة خدمات الويب في Linux.
Nginx و Apache هما أكثر خادمَي ويب استخداماً في العالم. يمكن لكليهما تقديم تطبيقات الويب والملفات الثابتة والعمل كوكيل عكسي على خوادم Linux. يغطي هذا الدليل التثبيت والإعداد الأساسي وإنشاء المضيفات الافتراضية لكليهما.
| الميزة | Nginx | Apache |
|---|---|---|
| البنية | غير متزامن، event-driven | قائم على العمليات/الخيوط |
| الملفات الثابتة | سريع جداً | أبطأ |
| المحتوى الديناميكي | يتطلب وكيلاً عكسياً | وحدات مدمجة |
| استخدام الذاكرة | منخفض | أعلى |
| الإعداد | أبسط | دعم .htaccess |
| الأفضل لـ | المواقع عالية الحركة | تطبيقات PHP |
اختر Nginx للمحتوى الثابت عالي الحركة أو الوكيل العكسي؛ اختر Apache لتطبيقات PHP (WordPress، Laravel). يمكن استخدامهما معاً: Nginx في المقدمة كوكيل عكسي، Apache في الخلفية كخادم تطبيقات.
# تحديث قائمة الحزم
sudo apt update
# تثبيت Nginx
sudo apt install nginx -y
# تشغيل وتفعيل الخدمة
sudo systemctl start nginx
sudo systemctl enable nginx
# التحقق من الحالة
sudo systemctl status nginx
# إضافة مستودع EPEL
sudo dnf install epel-release -y
# تثبيت Nginx
sudo dnf install nginx -y
# تشغيل وتفعيل الخدمة
sudo systemctl start nginx
sudo systemctl enable nginx
# اختبار الإعداد
sudo nginx -t
# إعادة تحميل الإعداد (بدون توقف)
sudo systemctl reload nginx
# إعادة تشغيل الخدمة
sudo systemctl restart nginx
# عرض إصدار Nginx
nginx -v
في Nginx، يُنشأ ملف إعداد منفصل لكل موقع تحت /etc/nginx/sites-available/.
# إنشاء ملف الإعداد
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
# لـ PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
# حظر الوصول للملفات المخفية
location ~ /\.ht {
deny all;
}
# ملفات السجل
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
# تفعيل الموقع
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# إنشاء مجلد الويب
sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
# الاختبار وإعادة التحميل
sudo nginx -t && sudo systemctl reload nginx
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
# تثبيت Apache
sudo apt update
sudo apt install apache2 -y
# تشغيل وتفعيل الخدمة
sudo systemctl start apache2
sudo systemctl enable apache2
# التحقق من الحالة
sudo systemctl status apache2
# تثبيت Apache (httpd)
sudo dnf install httpd -y
# تشغيل وتفعيل الخدمة
sudo systemctl start httpd
sudo systemctl enable httpd
# اختبار الإعداد
sudo apachectl configtest
# إعادة تحميل الإعداد
sudo systemctl reload apache2
# تفعيل الوحدات
sudo a2enmod rewrite
sudo a2enmod ssl
# تفعيل/تعطيل المواقع
sudo a2ensite example.com
sudo a2dissite 000-default
# إنشاء ملف الإعداد
sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
# إنشاء مجلد الويب
sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
# تفعيل الموقع
sudo a2ensite example.com.conf
# الاختبار وإعادة التحميل
sudo apachectl configtest && sudo systemctl reload apache2
استخدم Certbot للحصول على شهادة SSL مجانية:
# تثبيت Certbot
sudo apt install certbot -y
# لـ Nginx
sudo apt install python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
# لـ Apache
sudo apt install python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
# اختبار التجديد التلقائي
sudo certbot renew --dry-run
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/example.com/html;
index index.html;
}
# إعادة توجيه HTTP إلى HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# السماح بـ HTTP و HTTPS مع ufw
sudo ufw allow 'Nginx Full'
# أو
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# لـ Apache
sudo ufw allow 'Apache Full'
على خوادم REXE، لا تنسَ فتح منافذ HTTP (80) و HTTPS (443) من جدار حماية Path Panel أيضاً.
Nginx و Apache خادما ويب قويان لحالات استخدام مختلفة. Nginx مثالي للمحتوى الثابت عالي الأداء والوكيل العكسي، بينما يُفضَّل Apache لتطبيقات PHP والإعدادات القائمة على .htaccess. مع إعداد المضيف الافتراضي على أي من الخادمين، يمكن استضافة نطاقات متعددة على نفس الخادم.
يوفر Nginx أداءً أفضل للمواقع عالية الحركة والمحتوى الثابت والوكيل العكسي. Apache أسهل في الإعداد لتطبيقات PHP مثل WordPress و Laravel (مع دعم .htaccess). استخدام كليهما معاً ممكن أيضاً: Nginx في المقدمة، Apache في الخلفية.
يتم ذلك بإعداد المضيف الافتراضي. في Nginx، أنشئ ملفاً منفصلاً في /etc/nginx/sites-available/ لكل نطاق وأضف رابطاً رمزياً إلى sites-enabled. في Apache، أنشئ ملف .conf في /etc/apache2/sites-available/ وفعّله بـ a2ensite.
يمكنك الحصول على شهادة SSL مجانية مع Let's Encrypt. ثبّت Certbot: 'sudo apt install certbot python3-certbot-nginx -y'. ثم نفّذ 'sudo certbot --nginx -d example.com' لتثبيت الشهادة وإعدادها تلقائياً. تُجدَّد الشهادات تلقائياً كل 90 يوماً.
الأمر 'sudo nginx -t' يختبر ملفات الإعداد ويعرض الأخطاء. اقرأ رسالة الخطأ بعناية؛ عادةً تحدد اسم الملف ورقم السطر. يمكنك أيضاً التحقق من سجلات الخدمة بـ 'sudo journalctl -u nginx'.
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.