Dengan konfigurasi ini:
server {
listen 8080;
location / {
if ($http_cookie ~* "mycookie") {
proxy_set_header X-Request $request;
proxy_pass http://localhost:8081;
}
}
}
Saya memiliki kesalahan ini ketika saya memuat kembali layanan nginx:
Reloading nginx configuration: nginx: [emerg] "proxy_set_header" directive is not allowed here in /etc/nginx/conf.d/check_cookie.conf:5
nginx: configuration file /etc/nginx/nginx.conf test failed
Konfigurasi ini berfungsi baik, tetapi tidak melakukan apa yang saya inginkan:
server {
listen 8080;
location / {
proxy_set_header X-Request $request;
if ($http_cookie ~* "mycookie") {
proxy_pass http://localhost:8081;
}
}
}
Mengapa saya tidak bisa memasukkan direktif proxy_set_header di dalam klausa if?
nginx
proxy
configuration
Neuquino
sumber
sumber
Jawaban:
Dengan asumsi Anda sebenarnya bermaksud bertanya, 'bagaimana saya bisa membuat ini bekerja', bagaimana kalau hanya menulis ulang sehingga header selalu disahkan, tetapi mengaturnya ke beberapa nilai yang diabaikan jika Anda tidak ingin itu diatur.
sumber
""
benar?'Jika' umumnya merupakan praktik buruk dalam konfigurasi nginx. Anda dapat menggunakan modul peta untuk membuat semuanya berfungsi. lihat http://nginx.org/en/docs/http/ngx_http_map_module.html http://wiki.nginx.org/HttpMapModule
sumber