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
< zu ändern 🎜>
Listen 127.0.0.1:80
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>
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; }
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; }
Ä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; …… }
server { listen 81; server_name localhost; location / { root html; index index.html index.htm; } …… }
root html; #根目录,相对于安装目录 index index.html index.htm; #默认主页
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!