proxy inverse nginx et ajouter un répertoire
天蓬老师
天蓬老师 2017-05-16 17:21:03
0
2
380

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 ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
阿神

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

滿天的星座

É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;
    ...
    }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!