upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
Cuplikan di atas akan mengarahkan permintaan di mana url menyertakan string "service" ke server lain, tetapi tidak menyertakan parameter kueri.
parameters
nginx
Alex Luya
sumber
sumber
location /service/ { rewrite ^\/service\/(.*) /$1 break; proxy_pass http://apache; }
Saya menggunakan versi pendekatan kedua kolbyjack yang sedikit dimodifikasi,
~
bukan~*
.sumber
Saya memodifikasi kode @kolbyjack agar berfungsi
dengan parameter
sumber
proxy_pass
direktif di atas melakukan pengalihan pada sisi server.Anda harus menggunakan rewrite untuk meneruskan params menggunakan proxy_pass di sini adalah contoh yang saya lakukan untuk penyebaran aplikasi angularjs ke s3
Hosting Situs Statis S3 Merutekan Semua Jalur ke Index.html
diadopsi untuk kebutuhan Anda akan menjadi sesuatu seperti
jika Anda ingin berakhir di http://127.0.0.1:8080/query/params/
jika Anda ingin menggunakan http://127.0.0.1:8080/service/query/params/ Anda memerlukan sesuatu seperti
sumber
/path/params
) dengan baik tetapi tidak menangani parameter kueri (?query=params
)?github inti https://gist.github.com/anjia0532/da4a17f848468de5a374c860b17607e7
sumber
Untuk mengalihkan Tanpa Query String tambahkan baris di bawah ini di blok Server di bawah baris port mendengarkan:
Dengan Query String:
sumber
if
jika memungkinkan. Dalam hal ini, solusinya bisa benar menggunakanlocation
seperti yang ditunjukkan pada jawaban lain.bekerja dengan menambahkan $ request_uri proxy_pass http: // apache / $ request_uri;
sumber