Arama Yap Mesaj Senden
Rückruf anfordern
+90
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro

Kontaktieren Sie uns

Standort Halkali Merkez Viertel Fatih Str. Ozgur Apt. No. 46, Kucukcekmece, Istanbul, 34303, TR
Domain-Massenautomatisierung

Fügen Sie einem Linux-VPS ohne Control Panel Hunderte Domains mit Nginx oder Apache hinzu

Ohne Panel müssen Sie Document Roots, Virtual-Host-Dateien, Konfigurationstests, DNS und TLS selbst verwalten. Dieser Leitfaden unterscheidet Debian- und RHEL-Familien in einem Skript.

Nginx Apache 2.4 Ubuntu Debian AlmaLinux Rocky Linux
root@eka-server
WEB="nginx"
mkdir -p /var/www/ornek.com/public_html
nginx -t && systemctl reload nginx
apachectl configtest && systemctl reload httpd
2Nginx- und Apache-Modus
4Gängige Linux-Distributionen
VHostKonfiguration pro Domain
TLSZertifikat nach DNS
01
Architekturentscheidung

Wählen Sie vor dem Hinzufügen Hunderter Domains das richtige Hostingmodell

Massenautomatisierung darf keine falsche Architektur beschleunigen. Entscheiden Sie zuerst über Kundenisolation, Ressourcenlimits, Anwendungsroots sowie Mail- und DNS-Eigentum.

01

Nginx-Serverblock

Bietet geringen Overhead und klare server_name-Verwaltung für statische Inhalte, Reverse Proxy und PHP-FPM.

02

Apache VirtualHost

Geeignet, wenn .htaccess-Kompatibilität und Shared-Hosting-ähnliches Verhalten erforderlich sind.

03

Separater Root pro Domain

Jede Domain unter /var/www/domain/public_html vereinfacht Sicherung, Berechtigungen und Deployment.

04

Dynamisches Mass Virtual Hosting

Dynamisches Mass Virtual Hosting kann für Tausende identische Domains geeignet sein; bei Isolation oder individuellen Einstellungen sind VHosts pro Datei sicherer.

02
Voraussetzungen

Voraussetzungen vor dem Massenvorgang

Root- oder sudo-SSH-Zugriff01
Installiertes und laufendes Nginx oder Apache 2.402
Offene Ports 80 und 443 mit korrekten Firewallregeln03
Möglichkeit, die Domainliste auf die Server-IP zu zeigen04
Festgelegter Webbenutzer für Dateieigentum05
Sicherung der Konfigurationsverzeichnisse und von /var/www06
03
Implementierungsreihenfolge

Prüfunglierter und wiederherstellbarer Ablauf zum Massenhinzufügen

01

Ermitteln Sie Webserver und Distribution

Debian verwendet häufig sites-available, RHEL häufig conf.d; das Skript erkennt beide.

cat /etc/os-release
nginx -v 2>&1 || httpd -v 2>&1 || apache2 -v
02

Prüfen Sie die Domainliste

Verwenden Sie nur Punycode-/ASCII-Domains und einen Eintrag pro Zeile.

awk 'NF{print tolower($0)}' /root/domainler.txt | sort -u > /root/domainler-temiz.txt
03

Wählen Sie die WEB-Variable

Setzen Sie je nach installiertem Stack nginx oder apache.

WEB="nginx"
04

Testen Sie die Konfiguration mit zwei Domains

Prüfen Sie Dateipfade, Benutzerberechtigungen und Standard-VHost-Verhalten.

head -n 2 /root/domainler-temiz.txt > /root/domainler-test.txt
05

Führen Sie das Massen-VHost-Skript aus

Das Skript erstellt Verzeichnisse und VHosts und führt nur nach erfolgreichem Konfigurationstest einen Reload aus.

chmod 700 /root/linux-toplu-domain.sh
/root/linux-toplu-domain.sh
06

Schließen Sie DNS und TLS getrennt ab

Prüfen Sie zuerst A/AAAA-Auflösung und führen Sie anschließend Certbot oder den gewählten ACME-Client in kontrollierten Chargen aus.

dig +short ornek.com A
curl -I http://ornek.com
04
SSH, CLI und API

Kopierfertige Befehle und vollständiges Automatisierungsskript

01

Gemeinsames Nginx-/Apache-Massenskript

Erkennt Distributionspfade, erstellt Document Roots und VHosts, testet die Konfiguration und lädt neu.

#!/usr/bin/env bash
set -Eeuo pipefail

WEB="nginx"
DOMAIN_DOSYASI="/root/domainler.txt"
WEB_KOKU="/var/www"
SONUC="/root/linux-domain-sonuclari.csv"
HATA="/root/linux-domain-Fehlerlari.log"

[[ "$EUID" -eq 0 ]] || { echo "root gerekli"; exit 1; }
[[ -f "$DOMAIN_DOSYASI" ]] || { echo "domain listesi bulunamadi"; exit 1; }

if [[ -d /etc/nginx/sites-available ]]; then
    NGINX_DIZIN="/etc/nginx/sites-available"
    NGINX_ETKIN="/etc/nginx/sites-enabled"
else
    NGINX_DIZIN="/etc/nginx/conf.d"
    NGINX_ETKIN=""
fi

if [[ -d /etc/apache2/sites-available ]]; then
    APACHE_DIZIN="/etc/apache2/sites-available"
    APACHE_LOG="/var/log/apache2"
    APACHE_SERVIS="apache2"
else
    APACHE_DIZIN="/etc/httpd/conf.d"
    APACHE_LOG="/var/log/httpd"
    APACHE_SERVIS="httpd"
fi

if id -u www-data >/dev/null 2>&1; then
    WEB_KULLANICI="www-data"
elif id -u nginx >/dev/null 2>&1; then
    WEB_KULLANICI="nginx"
elif id -u apache >/dev/null 2>&1; then
    WEB_KULLANICI="apache"
else
    WEB_KULLANICI="root"
fi

printf '"domain","web","durum","document_root"\n' > "$SONUC"
: > "$HATA"
chmod 600 "$SONUC" "$HATA"

while IFS= read -r SATIR || [[ -n "$SATIR" ]]; do
    DOMAIN="$(printf '%s' "$SATIR" | tr -d '\r' | tr '[:upper:]' '[:lower:]' | sed -E 's#^[[:space:]]+##;s#[[:space:]]+$##;s#^https?://##;s#^www\.##;s#/.*$##')"
    [[ -z "$DOMAIN" ]] && continue
    [[ "$DOMAIN" == \#* ]] && continue

    if [[ ! "$DOMAIN" =~ ^[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$ ]]; then
        printf '"%s","%s","gecersiz",""\n' "$DOMAIN" "$WEB" >> "$SONUC"
        continue
    fi

    KOK="${WEB_KOKU}/${DOMAIN}/public_html"
    mkdir -p "$KOK"
    printf '<!doctype html><html lang="tr"><meta charset="utf-8"><title>%s</title><h1>%s hazır</h1></html>\n' "$DOMAIN" "$DOMAIN" > "${KOK}/index.html"
    chown -R "$WEB_KULLANICI:$WEB_KULLANICI" "${WEB_KOKU}/${DOMAIN}"
    chmod -R u=rwX,g=rX,o=rX "${WEB_KOKU}/${DOMAIN}"

    if [[ "$WEB" == "nginx" ]]; then
        DOSYA="${NGINX_DIZIN}/${DOMAIN}.conf"
        cat > "$DOSYA" <<EOF
server {
    listen 80;
    listen [::]:80;
    server_name ${DOMAIN} www.${DOMAIN};
    root ${KOK};
    index index.html index.php;
    access_log /var/log/nginx/${DOMAIN}.access.log;
    error_log /var/log/nginx/${DOMAIN}.error.log;
    location / {
        try_files \$uri \$uri/ /index.php?\$query_string;
    }
}
EOF
        if [[ -n "$NGINX_ETKIN" ]]; then
            ln -sfn "$DOSYA" "${NGINX_ETKIN}/${DOMAIN}.conf"
        fi
    else
        DOSYA="${APACHE_DIZIN}/${DOMAIN}.conf"
        cat > "$DOSYA" <<EOF
<VirtualHost *:80>
    ServerName ${DOMAIN}
    ServerAlias www.${DOMAIN}
    DocumentRoot "${KOK}"
    ErrorLog "${APACHE_LOG}/${DOMAIN}.error.log"
    CustomLog "${APACHE_LOG}/${DOMAIN}.access.log" combined
    <Directory "${KOK}">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
EOF
        if command -v a2ensite >/dev/null 2>&1; then
            a2ensite "${DOMAIN}.conf" >/dev/null
        fi
    fi

    printf '"%s","%s","hazir","%s"\n' "$DOMAIN" "$WEB" "$KOK" >> "$SONUC"
done < "$DOMAIN_DOSYASI"

if [[ "$WEB" == "nginx" ]]; then
    nginx -t
    systemctl reload nginx
else
    apachectl configtest
    systemctl reload "$APACHE_SERVIS"
fi

echo "Tamamlandi: $SONUC"
echo "Fehlerlar: $HATA"
02

Nginx-Serverblock für eine Domain

Stellen Sie sicher, dass server_name und root zur Domain passen.

server {
    listen 80;
    server_name ornek.com www.ornek.com;
    root /var/www/ornek.com/public_html;
    index index.html index.php;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}
03

Apache VirtualHost für eine Domain

Gewähren Sie Require all granted für den DocumentRoot und wählen Sie AllowOverride entsprechend der Anwendung.

<VirtualHost *:80>
    ServerName ornek.com
    ServerAlias www.ornek.com
    DocumentRoot "/var/www/ornek.com/public_html"
    <Directory "/var/www/ornek.com/public_html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
04

Massenhafte HTTP-Prüfung

Messen Sie Statuscodes für die Domainliste mit begrenzter Parallelität.

xargs -a /root/domainler.txt -P 10 -I{} sh -c 'printf "%s " "{}"; curl -LksS -o /dev/null -w "%{http_code}\n" --max-time 10 "http://{}"'
05
Betriebssystem und Stack

Unterschiede je nach Distribution und Webserver

Ubuntu / Debian

Das Layout sites-available/sites-enabled ist für Nginx und Apache üblich. Der Webbenutzer ist meist www-data.

  • nginx -t
  • apache2ctl configtest
  • systemctl reload nginx || systemctl reload apache2

AlmaLinux / Rocky / RHEL

Nginx und httpd verwenden meist conf.d. SELinux-Kontexte und firewalld-Regeln müssen zusätzlich geprüft werden.

  • nginx -t || httpd -t
  • restorecon -Rv /var/www
  • firewall-cmd --list-services

CloudLinux ohne Panel

LVE und CageFS sind meist mit Panelintegration sinnvoll. Entwerfen Sie bei einem panel-freien Stack systemd, PHP-FPM-Pools und Berechtigungen ausdrücklich.

  • cat /etc/cloudlinux-release 2>/dev/null || true
  • systemctl list-units 'php*fpm*'
  • find /var/www -maxdepth 2 -type d -printf '%u:%g %p\n' | head
06
Fehlerbehebung

Häufige Fehler bei der massenhaften Domainanlage

5 Einträge
Fehlermeldung

nginx: configuration file test failed

Doppelter server_name, fehlendes Semikolon, ungültiges Include oder Berechtigungen können die Ursache sein.

Fehlermeldung

AH00526 Syntax error

Die VirtualHost-Datei enthält eine ungültige Direktive, Anführungszeichen oder Modulabhängigkeit.

Fehlermeldung

403 Forbidden

Document-Root-Eigentum, Verzeichnis-Ausführungsrecht, SELinux-Kontext oder Apache-Directory-Regeln können falsch sein.

Fehlermeldung

Default server page opens

Der Hostname passt möglicherweise nicht zum vorgesehenen VHost oder DNS zeigt auf eine andere IP.

Fehlermeldung

Certbot authorization failed

DNS ist möglicherweise nicht propagiert, Port 80 geschlossen, ein Proxy aktiv oder der Challenge-Pfad wird anders geroutet.

Kein passender Fehler gefunden.

Sicherheits- und Betriebsrisiken

Gehen Sie vor diesen Prüfungen nicht in Produktion

  • Führen Sie den ersten Lauf mit 2 Testdomains durch; übertragen Sie nicht sofort die vollständige Domainliste in die Produktion.
  • Bereiten Sie die Domainliste als reine Domainnamen ohne HTTPS, www oder Pfade vor.
  • Sichern Sie vor dem Vorgang Panelkonfiguration, DNS-Zonen und Webserverdateien.
  • Speichern Sie API-Schlüssel, Root-Passwörter oder erzeugte Benutzerpasswörter niemals im Webroot.
  • Massenhafte SSL-Anfragen vor Abschluss der DNS-Propagation können Rate-Limits und fehlgeschlagene Validierungen verursachen.
Prüfliste

Kriterien für einen erfolgreichen Vorgang

  • Domains werden im Panel oder in der Webserverliste angezeigt.
  • Jede Domain verweist auf das richtige Document-Root-Verzeichnis.
  • Die HTTP-Anfrage liefert den erwarteten Statuscode.
  • DNS-A/AAAA-Einträge zeigen auf die richtige Server-IP-Adresse.
  • Fehlgeschlagene Einträge werden in ein separates Protokoll geschrieben und können erneut ausgeführt werden.
  • SSL wird nur für Domains aktiviert, deren DNS-Validierung erfolgreich ist.
07
Häufig gestellte Fragen

Linux-VPS ohne Panel Antworten zur Domain-Massenverwaltung

Sollte ich Nginx oder Apache wählen?

Die Anwendungsanforderungen entscheiden. Apache ist bei .htaccess-Abhängigkeit bequem; Nginx eignet sich für Reverse Proxy und zentrale Konfiguration.

Verringern Hunderte separate VHosts die Leistung?

Vierhundert VHosts allein sind auf modernen Servern nicht ungewöhnlich. Messen Sie Zertifikate, Logdateien, Workerlimits, Reload-Zeit und echten Traffic.

Ist für jede Domain ein eigener PHP-FPM-Pool nötig?

Trafficarme Websites innerhalb derselben Vertrauensgrenze können einen Pool teilen. Für verschiedene Kunden, Benutzer oder Ressourcenlimits sind getrennte Pools sicherer.

Kann ein Wildcard-VHost verwendet werden?

Es kann für ähnliche Domains verwendet werden; bei unterschiedlichen Roots, Zertifikaten oder Anwendungen sind explizite Serverblöcke/VirtualHosts besser verwaltbar.

Sollte die SSL-Ausstellung im selben Skript enthalten sein?

Eine getrennte Phase ist meist sicherer. Senden Sie keine ACME-Anfragen, bevor DNS-Propagation und HTTP-Zugriff geprüft sind.

Sollte aus SEO-Sicht auf allen Domains derselbe Inhalt verwendet werden?

Statt identischen Inhalt auf Hunderte Domains zu duplizieren, verwenden Sie eine Hauptdomain, Canonical-URLs und gegebenenfalls 301-Weiterleitungen.

08
Themencluster

Weitere Leitfäden zum massenhaften Hinzufügen von Domains

09
Primärquellen

Offizielle Panel-, Webserver- und Google-Dokumentation

EKA SOFTWARE- UND INFORMATIONSSYSTEME

Planen wir Ihre umfangreiche Domainmigration ohne Datenverlust oder Ausfallzeit

Wir setzen Panelwahl, DNS, SSL, Webserver, Sicherheit, Sicherung und Prüfung entsprechend Ihrer tatsächlichen Serverarchitektur um.

Top