Maison > Questions et réponses > le corps du texte
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 ?
阿神2017-05-16 17:23:03
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é,
location ~ ^/play(/?)(.*){
proxy_pass http://127.0.0.1:9000/$;
}
La signification de ce code est de transmettre la requête /play/xx à http://127.0.0.1:9000/xx
Une meilleure façon
location /play {
proxy_pass http://127.0.0.1:9000/;
}
Faites attention au '/' à la fin
Regardez ici
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
滿天的星座2017-05-16 17:23:03
É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
location ~^/play/ {
proxy_pass http://127.0.0.1:9000;
rewrite "^/play(.*)$" break;
...
}