2016-03-24 25 views
0

Ich habe für ein paar Wochen mit dieser Konfiguration gekämpft. Was ich erreichen möchte, kann wie folgt aufgeführt werden.Wie konfiguriere ich Nginx für verschiedene Subdomains über verschiedene Ports?

1.Ich habe vor nicht allzu langer Zeit eine Domain registriert. Und ich habe einige Webdienste auf meinem VPS eingerichtet, wie zB einen Blog, ein Forum und Owncloud. Jetzt möchte ich das Nginx so konfigurieren, dass ich den gesamten Dienst auf einem VPS und einer IP-Adresse ausführen kann. Um owncloud laufen zu lassen, muss ich die /etc/php5/fpm/pool.d/www.conf zu listen = 9000 ändern. In diesem Fall kann ich nur einen Service (Owncloud) Funktion erhalten, weil, wenn ich das Forum laufen lasse ich die listen = /var/run/php5-fpm.sock auskommentieren muss. Was mehr ist, habe ich versucht, beide auskommentieren, zeigte Nginx 502 danach.

2.Ich benutze Hexo als meinen Blog.Wenn ich den Server starte, kann ich in meinen Blog auf IP: 4000 zugreifen.So frage ich mich, ob ich meinen Blogserver im Hintergrund betreiben und die Beiträge online über bearbeiten könnte eine Subdomain, die zu Port 4000 umgeleitet wurde. Wenn es möglich ist, sollte ich die nginx.conf ändern oder etwas in sites-available hinzufügen?

3.Kann ich verschiedene Webdienste auf verschiedenen Subdomains bereitstellen? Welche Datei soll geändert werden? Es wird gesagt, dass ich dies erreichen kann, indem ich Reverse Proxy verwende?

Sorry für die pathetischen Englisch und Ausdruck. Vielen Dank im Voraus.

+0

Alle Problem gelöst. 1.I änderte beide Konfigurationsdateien von ihnen in 'listen =/var/run/php5-fpm.sock' 2.Reverse -proxying wurde eingerichtet. –

Antwort

0

gehen an sie Punkt für Punkt:

  1. Der Vorteil von PHP-FPM, die Sie verwenden, ist, dass Sie mehrere separaten Dolmetscher läuft in Ihrem Pool haben. Kopieren Sie dazu einfach die Datei unter /etc/php5/fpm/pool.d/www.conf an einen anderen Ort, sagen Sie /etc/php5/fpm/pool.d/forum.conf, ändern Sie die listen Direktive, und du hast einen zweiten PHP-Interpreter, der komplett getrennt von dem ersten läuft. Auf diese Weise haben owncloud (www) und dein Forum (Forum) ihren eigenen php.

  2. Dies wird Reverse-Proxying genannt. nginx macht das gut. Sie fügen einfach eine neue Websitedefinition in sites-available hinzu, die auf Ihrem Server den Port 4000 auf Port 4000 reversiert, dann diese Sitedefinition auf sites-enabled symbolisieren (oder kopieren) und nginx neu starten. Sie müssen Hexo so einrichten, dass es automatisch startet, damit es funktioniert.

  3. Sie können verschiedene Webdienste auf verschiedenen Subdomänen bereitstellen. Solange die DNS so konfiguriert ist, dass sie diesen Namen auf Ihren Server verweist, können Sie den Server so konfigurieren, dass er für jede Subdomäne mithilfe von Websitedefinitionen unterschiedlich reagiert. Sie müssen die Dateien unter sites-enabled ändern, um festzustellen, auf welche Namen nginx reagieren kann.

+0

Erstens danke für die Antwort.Und haben Sie eine Idee, die SSL-Port zu ändern? Mein 443-Port ist bereits durch einen anderen Prozess, der nicht geändert werden kann genommen.Besides du meine ich kann einfach nur einige Regeln in den Konfigurationsdateien wie 'Proxy_pass IP-Adresse: 4000' als Reverse-Proxying? –

+0

Für den SSL-Port müssen Sie nur die nginx 'listen' Direktive ändern, um auf einem anderen Port zu hören. Und Sie sind richtig für die Reverse-Proxy-Konfiguration. Möglicherweise müssen Sie eine neue Websitedefinition oder einen neuen Standortblock hinzufügen, aber das ist es im Wesentlichen. – T0xicCode

+0

Nun, wie du gesagt hast, habe ich das "www.conf'to'owncloud.conf' und starte sowohl nginx als auch php5-fpm neu, aber es hat nicht funktioniert und das Fehlerprotokoll zeigte '111 Connection refused' an. Die beiden Konfigurationsdateien verwenden denselben 80 Port. –

Verwandte Themen