Tôi đang cố gắng tìm ra cách đưa tất cả các yêu cầu được thực hiện vào một thư mục cụ thể và trả về một chuỗi json mà không cần chuyển hướng, trong nginx.
Thí dụ:
curl -i http://example.com/api/call1/
Kết quả dự kiến:
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}
Đây là những gì tôi có cho đến nay trong nginx conf của tôi:
location ~ ^/api/(.*)$ {
index /api_logout.json;
alias /path/to/file/api_logout.json;
types { }
default_type "application/json; charset=utf-8";
break;
}
Tuy nhiên, khi tôi cố gắng thực hiện yêu cầu, Kiểu nội dung không dính:
$ 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}
Có cách nào tốt hơn để làm điều này? Làm thế nào tôi có thể có được loại ứng dụng / json để gắn bó?
EDIT: Giải pháp!
Tôi đã tìm ra bạn chỉ có thể gửi các chuỗi thủ công trong câu lệnh return, vì vậy tôi đã làm điều đó thay vì sử dụng bí danh!
Mã cuối cùng tôi đã sử dụng:
location /api {
types { }
default_type "application/json";
return 200 "{\"logout\" : true"}";
}