Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Konfigurationsmethode von Nginx und Apache, die Port 80 gemeinsam nutzen
In diesem Artikel wird hauptsächlich die Konfigurationsmethode für die gemeinsame Nutzung von Port 80 durch Nginx und Apache vorgestellt. Wenn Sie möchten, dass Nginx nicht mit Apache um Port 80 konkurriert, finden Sie am Ende dieses Artikels natürlich auch die Methode zur Änderung des Nginx-Ports Bei Bedarf kann darauf verwiesen werden
Eine typische Nginx + Apache-Anwendungslösung kann darin bestehen, dass Nginx Port 80 belegt, statische Anforderungen filtert und dann dynamisch einen Proxy an Apache-Port 8080 anfordert. Der Vorteil des Proxy-Reverse-Proxys besteht darin, dass beim Zugriff immer Port 80 verwendet wird und Besucher keinen Unterschied bemerken.
Aber einige Anwendungen sind tatsächlich sehr „intelligent“ und erkennen, dass der Port, auf dem sich Apache befindet, 8080 ist, und fügen zu allen relevanten Hyperlinks Folgendes hinzu: 8080. Kann ich trotzdem normalen Zugriff haben, wenn es bereits tot ist? !
Es gibt eine Möglichkeit, dieses Problem zu lösen, nämlich Apache auf Port 80 auszuführen. Derselbe Server hat Nginx und Apache, zwei httpd-Dienste, beide sind 80, wird es keinen Konflikt geben?
Das Folgende ist ein Beispiel.
Ändern Sie
server { listen 80; server_name www.webyang.net; }
in der Konfiguration von Nginx.conf.
server { listen 192.168.3.3:80; #指定Nginx只占用某个IP的80端口。 listen 192.168.10.3:80; #如果你服务器中有多个IP,还可以指定多个。 server_name www.webyang.net; }
Wenn Sie mehrere virtuelle Hosts in Nginx haben, muss jeder einzelne so geändert werden.
Dann ist Apaches httpd.conf
an der Reihe, das Original
Listen 80
in
Listen 127.0.0.1:80Gibt wie bei Nginx die von Apache belegte IP und den Port an.
Speichern und beenden, Apache neu starten, damit es wirksam wird.
Wenn Sie auch mehrere virtuelle Hosts auf Apache haben. Es besteht keine Notwendigkeit, sie wie bei Nginx einzeln zu ändern, solange sie sich alle auf Port 80 befinden.
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin hello@abc.com DocumentRoot /data/web_server/admin ServerName www.webyang.net </VirtualHost>Glaubst du, dass alles gut wird? NEIN. Auf einen solchen Apache kann nur über http://127.0.0.1:80 zugegriffen werden, daher macht es keinen Sinn, dass er Port 80 belegt. Es ist besser, 8080 für Apache und 80 für Nginx zu verwenden.
Wenn Ihr Server zu diesem Zeitpunkt also über mehrere IPs verfügt, können Sie zusätzlich zur Bindung von Apache an 127.0.0.1 auch die IP einer anderen Netzwerkkarte binden, dann ist das Problem gelöst.
Ändern Sie eine Idee, Apache ist immer noch Port 8080, ändern Sie die Konfigurationsdatei eines Nginx-Domänennamens
location / { try_files $uri @apache; } location @apache { internal; proxy_pass http://127.0.0.1:8080; } location ~ .*.(php|php5)?$ { proxy_pass http://127.0.0.1:8080; }Zu diesem Zeitpunkt die Domäne Name Alle Aktionen laufen über Apache, einschließlich statischer Dateien. Es gibt auch viele Leute, die so schreiben:
upstream zend { server 127.0.0.1:8080; } location / { proxy_pass http://zend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location ~ .*.(php|php5)?$ { proxy_pass http://zend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; }Es ist ungefähr ähnlich.
Änderung des Nginx-Ports
Ändern Sie die Implementierung der Datei nginx.conf. Der Pfad dieser Datei ist unter Linux /usr/local/nginx/conf/nginx.conf und das Installationsverzeichnis confnginx.conf unter Windows.
server { listen 80; server_name localhost; …… }wird natürlich in
server { listen 81; server_name localhost; location / { root html; index index.html index.htm; } …… }geändert 8080, 8081 kann alles sein, es muss nicht 81 sein, aber stellen Sie sicher, dass iptable den Zugriff auf diesen Port zulässt. Beachten Sie die Speicherortkonfiguration:
root html; #根目录,相对于安装目录 index index.html index.htm; #默认主页Standardmäßig legen Sie die Datei im HTML-Ordner im Installationsverzeichnis ab und können sie verwenden Nginx-Zugriff. Verwandte Empfehlungen:
Vergleich zwischen Nginx und Apache
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Konfigurationsmethode von Nginx und Apache, die Port 80 gemeinsam nutzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!