Explication détaillée de la méthode de configuration du port de partage Nginx et Apache 80

不言
Libérer: 2023-03-25 12:38:02
original
2591 Les gens l'ont consulté

Cet article présente principalement la méthode de configuration du port 80 de partage de Nginx et Apache. Bien entendu, si vous souhaitez que Nginx ne concurrence pas Apache pour le port 80, la méthode de modification du port Nginx est également jointe à la fin de cet article. qui en a besoin peuvent s'y référer

Une solution d'application Nginx + Apache typique peut être que Nginx occupe le port 80, filtre les requêtes statiques, puis demande dynamiquement le proxy au port Apache 8080. L'avantage du proxy inverse Proxy est que lors de l'accès, il s'agit toujours du port 80 et les visiteurs ne remarqueront aucune différence.

Mais certaines applications sont effectivement très "intelligentes" et reconnaissent que le port où se trouve Apache est 8080, et ajouteront ce qui suit : 8080 à tous les hyperliens pertinents. S'il est déjà mort, puis-je toujours avoir un accès normal ? !

Il existe un moyen de résoudre ce problème, qui consiste à exécuter Apache sur le port 80. Le même serveur a Nginx et Apache, deux services httpd, tous deux 80, n'y aura-t-il pas de conflit ?

Ce qui suit est un exemple.
Modifiez

server {
 listen 80;
 server_name www.webyang.net;
}
Copier après la connexion

dans la configuration de Nginx.conf.

server {
 listen 192.168.3.3:80;  #指定Nginx只占用某个IP的80端口。
 listen 192.168.10.3:80;  #如果你服务器中有多个IP,还可以指定多个。
 server_name www.webyang.net;
}
Copier après la connexion

Si vous avez plusieurs hôtes virtuels dans Nginx, chacun doit être modifié comme ceci.

Ensuite, c'est au tour du httpd.conf
d'Apache de changer l'original

Listen 80
Copier après la connexion

en

Listen 127.0.0.1:80
Copier après la connexion

Identique à Nginx, précisez l'IP et le port occupés par Apache.
Enregistrez et quittez, redémarrez Apache pour prendre effet.
Si vous disposez également de plusieurs hôtes virtuels sur Apache. Il n’est pas nécessaire de les modifier un à un comme Nginx, du moment qu’ils sont tous sur le port 80.

Par exemple :

NameVirtualHost *:80
<VirtualHost *:80>
 ServerAdmin hello@abc.com
 DocumentRoot /data/web_server/admin
 ServerName www.webyang.net
</VirtualHost>
Copier après la connexion

Pensez-vous que tout ira bien ? Non.

Un tel Apache n'est accessible que via http://127.0.0.1:80, cela n'a donc aucun sens qu'il occupe le port 80. Il est préférable d'utiliser 8080 pour Apache et 80 pour Nginx.
Donc, si votre serveur a plusieurs IP à ce moment-là, en plus de lier Apache à 127.0.0.1, vous pouvez également lier l'IP d'une autre carte réseau, alors le problème sera résolu.

Mais la plupart des gens n’ont qu’une seule IP indépendante, cette méthode est donc un mirage pour beaucoup de gens.
Modifiez une idée, Apache est toujours le port 8080, modifiez le fichier de configuration d'un nom de domaine nginx

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;
}
Copier après la connexion

À ce moment, Toutes les actions sur ce nom de domaine passent par Apache, y compris les fichiers statiques.

Il y a aussi beaucoup de gens qui écrivent de cette façon :

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;
}
Copier après la connexion

C'est à peu près similaire.

Modification du port Nginx
Modifier l'implémentation du fichier nginx.conf. Le chemin de ce fichier sous Linux est /usr/local/nginx/conf/nginx.conf, et le répertoire d'installation confnginx.conf sous Windows.

server {
 listen  80;
 server_name localhost;
 
 ……
}
Copier après la connexion

a été remplacé par

server {
 listen  81;
 server_name localhost;
 
 location / {
 root html;
 index index.html index.htm;
 }
 ……
}
Copier après la connexion

Bien sûr, vous pouvez le changer en 8080, 8081, etc. Il n'est pas nécessaire qu'il soit 81, mais assurez-vous qu'iptable autorise l'accès à ce port.

Notez la configuration de l'emplacement :

root html; #根目录,相对于安装目录 
index index.html index.htm; #默认主页
Copier après la connexion

Par défaut, vous mettez le fichier dans le dossier html du répertoire d'installation. Nginx.

Recommandations associées :

Comparaison entre Nginx et Apache

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal