Maison  >  Article  >  Opération et maintenance  >  Comment configurer la redirection de port des ports non 80 sur le serveur Nginx

Comment configurer la redirection de port des ports non 80 sur le serveur Nginx

WBOY
WBOYavant
2023-05-20 15:04:181830parcourir

nginx peut être facilement configuré comme serveur proxy inverse :

  server {
  listen 80;
  server_name localhost;
  location / {
  proxy_pass http://x.x.x.x:9500;
  proxy_set_header host $host:80;
  proxy_set_header x-real-ip $remote_addr;
  proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  proxy_set_header via "nginx";
  }
  }

Mais si le port d'écoute de nginx n'est pas le port par défaut 80, remplacez-le par d'autres ports tels que le port 81.
Le request.getserverport() dans le serveur backend ne peut pas obtenir le bon port et la valeur renvoyée est toujours 80 ;
Lors de la réponse à.sendredirect(), le client peut ne pas obtenir l'URL de redirection correcte.
Examinons en détail la méthode de configuration correcte :

Ajouter un hôte virtuel nginx

Comment configurer la redirection de port des ports non 80 sur le serveur Nginx

Pour transférer nginx, vous devez bien sûr configurer nginx. La fonctionnalité de nginx peut être améliorée en ajoutant une configuration d'hôte virtuel. Tout d'abord, jetez un œil au fichier de configuration nginx. Le fichier nginx de l'auteur se trouve dans /etc/nginx/nginx.conf. Comme vous pouvez le voir sur l'image ci-dessus, nginx introduit le fichier de configuration dans le répertoire vhosts.d à la fin. Ensuite, vous devez créer un fichier avec le suffixe .conf dans le répertoire /etc/nginx/vhosts.d (si le répertoire n'existe pas, vous devez le créer vous-même).

nginx effectue une redirection de port non-80
Pour transférer, vous pouvez utiliser l'élément de configuration proxy_pass de nginx. nginx écoute le port 80 et après avoir reçu la demande, il la transmettra à l'URL à transférer. La configuration spécifique est la suivante :

server {
  server_name www.test.com
  listen 80;

  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

Oui, c'est aussi simple que cela. C’est le cœur de la configuration de la redirection de port.

Cependant, lorsque vous rencontrez une entreprise qui a besoin d'obtenir une vraie IP, vous devez également ajouter la configuration concernant la vraie IP :

server {
  server_name www.test.com
  listen 80;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header host $host:80;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

proxy_set_header Cette configuration est à changer l'en-tête de la requête http. Host est le nom d'hôte de la requête, x-real-ip est la véritable adresse IP de la requête et x-forwarded-for indique qui a initié la requête.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer