Coba gunakan dukungan proxy terbalik . Bagian contohnya location
adalah:
location / {
proxy_pass http://localhost:8080;
proxy_redirect http://localhost:8080/ /;
proxy_read_timeout 60s;
# May not need or want to set Host. Should default to the above hostname.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Contoh ini akan melewati semua permintaan ke server
blok ini ke server kedua yang berjalan localhost:8080
. Ini menyimpan POST
dan juga harus melestarikan jenis permintaan lainnya juga jika itu menjadi masalah.
Masalahnya adalah bahwa pengalihan eksternal tidak akan pernah mengirim ulang POST
data. Ini ditulis ke dalam spec HTTP (periksa bagian 3xx). Setiap klien yang melakukan ini melanggar spesifikasi.
Jika kode status 301/302 diterima sebagai tanggapan terhadap permintaan selain GET atau HEAD, agen pengguna TIDAK HARUS secara otomatis mengarahkan kembali permintaan kecuali dapat dikonfirmasi oleh pengguna, karena ini dapat mengubah kondisi di mana permintaan dikeluarkan. .
Saya cukup yakin bahwa sebagian besar browser menerapkan ini hanya dengan memaksa permintaan yang dialihkan menjadi GET
permintaan. Secara teoritis, spesifikasi memang memungkinkan untuk browser yang akan meminta pengguna apakah akan mengarahkan ulang POST
data, tapi saya tidak mengetahui apa pun yang saat ini dilakukan.