proksi terbalik nginx dan tambah direktori
天蓬老师
天蓬老师 2017-05-16 17:21:03
0
2
379

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?

天蓬老师
天蓬老师

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

membalas semua(2)
阿神

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

滿天的星座

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;
    ...
    }
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!