Par exemple, je souhaite accéder à 127.0.0.1:9000 via 127.0.0.1/play/
Ma configuration actuelle est la suivante :
location / {
root F:\Personal\ck;
index index.html;
}
location ~ ^/play/ {
proxy_pass http://127.0.0.1:9000;
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_redirect off;
}
Lorsque j'ai effectivement accédé à 127.0.0.1/play/, il a accédé à 127.0.0.1:9000/play/. N'a-t-il pas accédé directement au port 9000, mais a-t-il mis le nom du répertoire à la fin ?
Parce que vous avez demandé /play/ et que cette requête a été transmise à http://127.0.0.1:9000. Le chemin de cette requête sera également transmis.
Ce que vous voulez peut devenir réalité,
La signification de ce code est de transmettre la requête /play/xx à http://127.0.0.1:9000/xx
Une meilleure façon
Faites attention au '/' à la fin
Regardez ici
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Étant donné que proxy_pass n'est qu'un proxy inverse, il ne peut pas réécrire les règles d'URL. Il modifie uniquement le nom d'hôte.
Si vous souhaitez supprimer la dernière chose, vous devez utiliser la réécriture