J'essaie de comprendre comment prendre toutes les demandes faites dans un répertoire particulier et retourner une chaîne json sans redirection, dans nginx.
Exemple:
curl -i http://example.com/api/call1/
Résultat attendu:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/json
Date: Fri, 13 Apr 2012 23:48:21 GMT
Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT
Server: nginx
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 38
Connection: keep-alive
{"logout": true}
Voici ce que j'ai jusqu'à présent dans ma conf nginx:
location ~ ^/api/(.*)$ {
index /api_logout.json;
alias /path/to/file/api_logout.json;
types { }
default_type "application/json; charset=utf-8";
break;
}
Cependant, lorsque j'essaie de faire la demande, le Content-Type ne colle pas:
$ curl -i http://example.com/api/call1/
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/octet-stream
Date: Fri, 13 Apr 2012 23:48:21 GMT
Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT
Server: nginx
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 38
Connection: keep-alive
{"logout": true}
Y a-t-il une meilleure manière de faire cela? Comment puis-je conserver le type d'application / json?
EDIT: Solution!
J'ai compris que vous pouvez simplement envoyer des chaînes manuelles dans la déclaration de retour, donc je l'ai fait au lieu d'utiliser des alias!
Code final que j'ai utilisé:
location /api {
types { }
default_type "application/json";
return 200 "{\"logout\" : true"}";
}
redirect
oupermanent
est spécifié.Très simple. La configuration entière pourrait être:
la source