Rumah > Operasi dan penyelenggaraan > Nginx > Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header

Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header

王林
Lepaskan: 2023-05-17 17:40:06
ke hadapan
1871 orang telah melayarinya

Prekata

add_header ialah arahan yang ditakrifkan dalam modul pengepala Seperti namanya, ia digunakan untuk menambah pengepala respons http. Tetapi sila ambil perhatian bahawa ia hanya "menambah", bukan menulis semula. Jadi jika pengepala sudah wujud, menggunakan add_header akan menyebabkan masalah. Selain itu, dalam versi nginx yang lebih rendah, add_header tidak menyokong penggunaan dalam halaman ralat.

Ini adalah perintah yang mempunyai banyak perangkap. Peringkat pemprosesannya lebih lewat daripada pemprosesan lokasi Walaupun ia boleh ditulis di lokasi, jika lokasi lain ditulis semula, add_header yang tidak diproses di lokasi sebelumnya akan hilang. Contohnya:

location = /a {
 add_header a 1;
 rewrite / /b;
}
location = /b {
 add_header b 2;
 return 204;
}
Salin selepas log masuk

Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header

tidak mempunyai 1 pengepala, bukan? Ini adalah lubang!

Satu lagi perangkap ialah masalah pendua yang disebut pada mulanya, Sebagai contoh, saya ingin menetapkan jenis kandungan untuk kandungan, tetapi kerana terdapat default_type yang ditetapkan secara global, ia diulang.

default_type 'text/plain';

location = /a {
 add_header content-type application/json;
 return 200 '"ok"';
}
Salin selepas log masuk

Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header

Sudah tentu terdapat banyak penyelesaian, seperti membiarkan default_type kosong untuk lokasi ini, atau sekadar tidak menggunakan add_header dan mengubah suai default_type untuk lokasi ini.

Perangkap besar terakhir ialah ia tidak boleh berkuat kuasa pada halaman ralat, yang juga ditakrifkan dengan jelas dalam. Contohnya, contoh berikut:

location = /a {
 add_header content-type application/json;
 return 404 '"not found"';
}
Salin selepas log masuk

Saya berharap untuk membalas dengan json, tetapi memandangkan kod status ialah 404, add_header di sini tidak akan berkuat kuasa.

Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header

Walaupun contoh ini boleh menggunakan default_type untuk menyelesaikan masalah, bagaimana jika ia adalah pengepala lain? Sebagai contoh, apa yang perlu dilakukan dengan kawalan akses-allow-asal? Kemudian tiada penyelesaian kecuali menggunakan lua atau modul pihak ketiga yang lain untuk menyelesaikannya. Sudah tentu, nginx juga menyedari masalah ini, jadi dokumen itu juga mengatakan bahawa ia menyokong parameter yang dipanggil sentiasa selepas versi 1.7.5. Walaupun nginx telah menyelesaikan masalah ini dengan sendirinya, tengine berdasarkan 1.6.2 hampir gagal.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah konfigurasi nginx add_header. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan