Maison  >  Questions et réponses  >  le corps du texte

Problème étrange avec la page d'accueil correspondante de Nginx

upstream backend {
    server 192.168.0.100:80;
    server 192.168.0.100:81;
}
server {
    listen 80;
    server_name www.abc.com abc.com;
    root  /opt/wwwroot/abc.com/;

    location / {
        proxy_pass https://backend;
        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_hide_header X-Powered-By;
    }

    location = / { 
        index index.html index.htm index.php;
    }
}

Je souhaite que les utilisateurs n'utilisent pas proxy_pass lorsqu'ils visitent www.abc.com/. Au lieu de cela, ils peuvent accéder directement à la page locale /opt/wwwroot/abc.com/index.html, et toutes les autres demandes passeront par proxy_pass
. J'y travaille depuis longtemps et je n'arrive pas à comprendre, c'est un peu bizarre, aidez-moi. .

淡淡烟草味淡淡烟草味2712 Il y a quelques jours501

répondre à tous(4)je répondrai

  • 怪我咯

    怪我咯2017-05-16 17:30:20

    location = / {
      rewrite / /index.html break;
      root /usr/share/nginx/html;
      index index.html;
    }
    

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:30:20

    Cela est dû aux règles de correspondance d'emplacement par défaut de nginx. La correspondance d'emplacement de nginx correspond à l'URI relatif. Les règles de correspondance d'emplacement de nginx sont les suivantes :

    1. Première correspondance "=", qui est ce qu'on appelle la correspondance exacte
    2. Deuxièmement, faites correspondre les expressions régulières, telles que "~" ou "^~"
    3. Deuxièmement, faites correspondre selon l'ordre des fichiers de configuration
    4. Enfin, passez le relais à/pour l'appariement universel

    Comprenant les règles de correspondance d'emplacement de nginx, votre situation est facile à expliquer. L'URI relatif de www.abc.com/ est /. Premièrement, il correspond avec précision à d'autres URI relatifs tels que www.abc.com/adf. Il s'agit de /adf, et il est transmis à la correspondance universelle selon vos règles de correspondance géographique

    Si vous souhaitez résoudre ce problème, mettez simplement l'index dans la correspondance universelle. Écrire un location = / {} seul n'a aucun effet selon vos besoins

    répondre
    0
  • 迷茫

    迷茫2017-05-16 17:30:20

    Si l'emplacement ci-dessous n'est pas nécessaire, indexez simplement index.html et c'est tout.

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:30:20

    Remplacez les deux emplacements. . .

    répondre
    0
  • Annulerrépondre