ngnix ist unter Linux viel einfacher - zumindest in Bezug auf die Dokumentation. Ich habe jedoch das Gefühl, dass wir am Anfang beginnen müssen. ngnix funktioniert normalerweise sofort, obwohl Sie Dinge wie php separat einrichten müssen - es gibt kein Äquivalent für mod proxy.
In jedem modernen HTTP-Server gibt es einige Varianten von virtuellen Hosts. In ngnix können Sie diese entweder als einzelne Datei oder als separate Dateien einrichten lassen. Diese Art funktioniert auf FTP nicht - aber es gibt Problemumgehungen. ( Ngnix nennt es Serverblöcke, aber den gleichen Unterschied ).
Sie müssen nur separate Konten in ftp mit unterschiedlichen Benutzernamen, Kennwörtern und Rood-Verzeichnissen einrichten.
Virtualhosts funktioniert nur für http und https und ist im Wesentlichen eine Möglichkeit, den Datenverkehr in verschiedenen Domänen auf verschiedene Routen zu lenken. Auf diese Weise können Sie basierend auf dem Hostnamen mehrere Dienste in verschiedenen Stammverzeichnissen ausführen. Sie können beispielsweise zwei Instanzen von WordPress auf demselben Server mit meist separaten Dateien ausführen.
Ich bin faul - ich habe eine Konfigurationsdatei pro Domain. Wenn Sie dies unter Windows ausführen, schlagen Sie in der entsprechenden Dokumentation nach.
Sie sollten herausfinden, wo sich die Konfigurationsdateien für jede Site befinden - meine in / etc / ngnix / sites-available. Diese sind mit Sites-Aktivierten verknüpft. Dies kann auf der Plattform basieren
Sie werden dort immer eine Standardeinstellung haben, die vernünftig ist und funktionieren sollte. Es ist langweilig und Sie können es durchlesen, um die verschiedenen Optionen zu verstehen.
Sie können dies entweder bearbeiten (ich empfehle es nicht) oder eine Konfigurationsdatei pro Site in demselben Ordner erstellen. Dies ist ein Beispiel für das, das ich verwende. Dadurch werden die Standardeinstellungen überschrieben
server { listen 80; listen [::]:80; root /var/www/html/new; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html index.php; server_name new.example.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass the PHP scripts to FastCGI server via unix socks # location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
Mehr oder weniger sage ich ihm also, Port 80, auf ipv4 und 6 zuzuhören, ihm den Hostnamen mitzuteilen und einige andere PHP-bezogene Sachen.
Wenn ich root wechsle und new.example.com durch new2.example.com tausche und den Root wechsle, werden alle Anforderungen an new2.example.com an den Inhalt im neuen Root gesendet. Sie können beispielsweise 2 Kopien von WordPress auf demselben Server mit verschiedenen Domänen auf diese Weise ausführen. Ich erstelle eine davon mit dem entsprechenden Servernamen und Root-Namen pro Domäne in Sites-enabled. Verknüpfe sie mit Sites, die aktiviert sind (funktioniert in Windows möglicherweise anders), und lade meine Nginix-Konfiguration erneut.
Angenommen, Sie versuchen zu proxy. Sie haben einen oder mehrere Server an verschiedenen Ports. ngnix sitzt vor direktem verkehr
server { listen 80; listen [::]:80; server_name matrix.example.com; location /_matrix { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; } }
Betrachten Sie diese Konfigurationsdatei - ich bin nicht sicher, ob sie tatsächlich funktionieren wird (ich habe eine HTTPS-fähige Version davon), aber dafür sind die Dokumente gedacht . Er wird an Port 80 für die Domäne "matrix.example.com" mithören.