Können Sie sich darauf verlassen, dass Nginx Ihr einziger Webserver ist? Ich weiß, dass es in Bezug auf die Leistung gut funktioniert, aber wie funktioniert es in Bezug auf die Sicherheit? Ich weiß, dass Apache stabil ist und ModSecurity hat. Dies ist bei Nginx nicht der Fall.
Ich werde Nginx nur als Webserver und nur für dynamische Inhalte verwenden. Alle meine statischen Inhalte werden von einem CDN geliefert.
mysql
php
web-server
nginx
Saif Bechan
quelle
quelle
Antworten:
nginx führt dynamischen Inhalt durch 'Reverse Proxy' zu einem FastCGI-Server aus. Das PHP-CGI-Paket in den meisten Distributionen enthält den Fast-CGI-Modus, in dem PHP einen kleinen FCGI-Server startet, mit dem Sie auch Nginx verbinden können.
Mit dieser Trennung können Sie clevere Dinge tun:
Aktualisiert: Per Kommentar unten, hier sind einige Links:
fastcgi_pass param - Auf diese Weise weisen Sie nginx an, eine Anforderung an einen fastcgi-Server zu übergeben. FastCGI übergibt Variablen (die absichtlich wie CGI-Umgebungsvariablen aussehen), ermöglicht Ihnen jedoch die Übertragung beliebiger Daten vom Front-End zum Back-End. In der Debian-Distribution (und auch in der Quelldistribution, iirc) gibt es eine fastcgi.conf-Datei, die alle Standardparameter enthält, die die meisten Toolkits benötigen, um auf den Markt zu kommen
Upstream-Modul - Mit dem Upstream-Modul können Sie mehrere Upstream-Server definieren, die andere Webserver, Fastcgi-Server oder andere sein können. Das fastcgi_pass-Modul enthält ein kurzes Beispiel, das Upstream verwendet. Beachten Sie, dass Sie auf einem Single-Host-System sogar Unix-Domain-Sockets verwenden können und keinen TCP / IP-Overhead verursachen!
PHPFCGI-Beispiel - Hier wird eine vollständige Beispielkonfiguration beschrieben. Ich persönlich bin ein Fan von Daemontools (oder Runit, wenn Sie kein DJB-Fan sind) und habe sehr einfache Wrapper geschrieben, um php-fcgi unter Prozessüberwachung auszuführen (die neu gestartet werden, wenn es abnormal beendet wird), aber das auf dieser Seite bereitgestellte Skript ist ein Skript im SysV-Stil, das Sie in /etc/init.d/ werfen und die entsprechenden Links in /etc/rcX.d/ hinzufügen können. Im Skript auf dieser Seite gibt es einige Variablen, die Sie anpassen können, um die Umgebung anzupassen, in der Ihre fcgi-Anwendung ausgeführt wird.
Virtuelles Hosting wird durch "Server" -Abschnitte erleichtert:
Weitere Informationen finden Sie im Abschnitt zu Servername . Auf der restlichen Seite finden Sie zahlreiche Informationen zur Konfiguration des Corehttp-Moduls.
In Bezug auf die Sicherheit nimmt Igor (Hauptentwickler) die Sicherheit ernst und nimmt häufig an ihrer sehr aktiven Mailingliste teil. Hier ist eine Liste der anerkannten Sicherheitsprobleme und hier eine Liste des Mailinglistenarchivs
quelle
Ich führe nginx mit php-fcgi auf einem hoch geladenen Server aus, es funktioniert total erstaunlich.
Sicherheit ist eine Sache, die Sie selbst erstellen. Immer. Bitte machen Sie keinen Fehler, indem Sie sich auf eine Software verlassen, die Sie auf magische Weise schützt, wenn es um echte Probleme geht. Es wird nicht. Gute Codierung und Verwaltung wird.
quelle
Ich hatte den Eindruck, dass Nginx nur statische Inhalte bereitstellen kann? Dies macht PHP zu einer "Mission unmöglich"
quelle