Rumah  >  Soal Jawab  >  teks badan

proksi terbalik nginx dan tambah direktori

Sebagai contoh, saya ingin mengakses 127.0.0.1:9000 melalui 127.0.0.1/play/
Konfigurasi semasa saya adalah seperti berikut:

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;
}

Apabila saya benar-benar mengakses 127.0.0.1/play/, ia telah mengakses 127.0.0.1:9000/play/ Adakah saya tidak langsung mengakses port 9000, tetapi meletakkan nama direktori di hujungnya?

天蓬老师天蓬老师2713 hari yang lalu383

membalas semua(2)saya akan balas

  • 阿神

    阿神2017-05-16 17:23:03

    Kerana anda meminta /play/ dan permintaan ini telah dihantar ke http://127.0.0.1:9000 Laluan permintaan ini juga akan diluluskan.

    Apa yang anda inginkan boleh menjadi kenyataan,

    location ~ ^/play(/?)(.*){
        proxy_pass http://127.0.0.1:9000/$;
    }

    Maksud kod ini ialah menghantar permintaan untuk /play/xx ke http://127.0.0.1:9000/xx

    Cara yang lebih baik

    location /play {
            proxy_pass   http://127.0.0.1:9000/;
    }

    Perhatikan '/' di hujung

    Lihat di sini
    http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

    balas
    0
  • 滿天的星座

    滿天的星座2017-05-16 17:23:03

    Oleh kerana proxy_pass hanyalah proksi terbalik, ia tidak boleh menulis semula peraturan URL Ia hanya menukar nama hos.
    Kalau nak keluarkan benda lepas, kena guna rewrite

    location ~^/play/ {
        proxy_pass    http://127.0.0.1:9000;
        rewrite       "^/play(.*)$"  break;
        ...
        }

    balas
    0
  • Batalbalas