Am nevoie de puțin ajutor cu configurarea nginx conf. Configurația mea este practic asta...
harta $http_apikey $api_client_name {
Mod implicit "";
„CLIENT_ID” „client_one”;
}
Server {
access_log /dev/stdout principal;
asculta 443 ssl;
nume_server gazdă locală;
# Configurare TLS
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols TLSv1.2 TLSv1.3;
proxy_intercept_errors activat; # Nu trimiteți erori de backend către client
tip_implicit aplicație/json; # Dacă nu există tip de conținut, presupuneți JSON
locație ~ ^/index-$http_apikey {
dacă ($http_apikey = "") {
întoarce 401; # Neautorizat
}
if ($api_client_name = "") {
întoarce 403; # Interzis
}
proxy_pass http://elasticsearch:9200;
}
....
Ideea este să obțineți http_apikey
din informațiile antet de pe POST și folosiți-l ca parte a linkului. Cu toate acestea VAR, http_apikey
, are litere mari, precum și litere mici și cifre. Se așteaptă ca URI-ul să fie cu litere mici, deci, în esență:
locație ~ ^/index-$http_apikey.lower() {
dacă ($http_apikey = "") {
întoarce 401; # Neautorizat
}
if ($api_client_name = "") {
întoarce 403; # Interzis
}
proxy_pass http://elasticsearch:9200;
}
locație ~ ^/index-$http_apikey.lower()
Există vreo modalitate de a face acest lucru în nginx? Ca în bash, aș face ${http_apikey,,}
... există un echivalent nginx?
Mulțumiri