Zuordnen von Subdomains zu URLs mit Nginx

Ich bin sehr neu in Nginx, also vergib mir, wenn meine Erklärungen nicht stimmen. Ich werde mein Bestes geben, um zu erklären, was ich erreichen möchte.

Mit WordPress und nginx möchte ich, dass Benutzerkonten einer Unterdomäne der Hauptdomäne zugeordnet werden. Wenn der Benutzer beispielsweise ein Konto mit dem Namen "sample" erstellt, ist dies die Unterdomäne für diesen Benutzersample.example.com.

Wenn der Benutzer zu gehtsample.example.comsollte die Unterdomäne zugeordnet werdenexample.com/sample/. Ebenso, wenn ein Benutzer besuchtsample.example.com/account/sollte es abbilden aufexample.com/sample/account/, und so weiter und so fort. Es ist zu beachten, dass dieexample.com/sample/ URLs sind Umschreibungen dieser Art von Struktur:example.com/index.php?user=sample.

Es gibt auch einige reservierte Subdomains, diesollte nicht umgeleitet werden, wie cdn und admin. Sie sollten von diesen Regeln ignoriert werden, wenn sie angefordert werden.

Wie kann ich dies automatisch erreichen, wenn ein Benutzer ein Konto erstellt? Das Ziel dabei ist die Automatisierung - einmal richtig einrichten und sich keine Sorgen machen. Da ich vor ein paar Tagen buchstäblich mit Nginx angefangen habe, bin ich mir nicht sicher, wo ich überhaupt anfangen soll. Jeder Rat, mich in die richtige Richtung zu bewegen, wäre unglaublich hilfreich. Hier ist meine aktuelle Konfigurationsdatei für die Domain:

server {
    listen          80;
    server_name     www.example.com;
    rewrite     ^(.*) $scheme://example.com$1 permanent;
}

server {
    listen          443 ssl;
    server_name     www.example.com;
    rewrite         ^(.*) $scheme://example.com$1 permanent;
}

server {
    listen      80;
    server_name example.com;

    access_log  /var/www/example.com/logs/access.log;
    error_log   /var/www/example.com/logs/error.log;

    root        /var/www/example.com/public;
    index       index.php;

    location / {
        try_files $uri $uri/ @wordpress /index.php?q=$request_uri;
    }

    location @wordpress {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME /var/www/example.com/public/index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME /index.php;
    }

    # Pass the PHP scripts to FastCGI server listening on UNIX sockets.
    #
    location ~ \.php$ {
        try_files $uri @wordpress;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/example.com/public$fastcgi_script_name;
        include        fastcgi_params;
    }
}

server {
    listen                      443 ssl;
    ssl                         on;
    keepalive_timeout           70;
    server_name                 example.com;
    ssl_certificate             ssl/example.com.chained.crt;
    ssl_certificate_key         ssl/example.key;
    ssl_protocols               SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers                 HIGH:!aNULL:!MD5;
    ssl_session_cache           shared:SSL:10m;
    ssl_session_timeout         10m;
    ssl_prefer_server_ciphers   on;

    root        /var/www/example.com/public;
    index       index.php;

    location / {
        try_files $uri $uri/ @wordpress /index.php?q=$request_uri;
    }

    location @wordpress {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME /var/www/example.com/public/index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME /index.php;
    }

    # Pass the PHP scripts to FastCGI server listening on UNIX sockets.
    #
    location ~ \.php$ {
        try_files $uri @wordpress;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/example.com/public$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Ich verstehe, dass das, was ich zu erreichen versuche, wahrscheinlich in die Zukunft gehen muss/etc/nginx/nginx.conf Datei, wenn ich möchte, dass es automatisiert wird, und ich versuche aktiv zu lernen, wie dies erreicht wird. Ich stecke einfach fest, wo ich mich gerade befinde, und suche nach Ratschlägen / Hilfe, die mich in die richtige Richtung lenken. Ich bin gespannt zu lernen!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage