আমি কি এনগিনেক্সে একটি ডিরেক্টরিতে সমস্ত ডিরেক্টরি অনুরোধের নাম রাখতে পারি?


9

আমি কোনও নির্দিষ্ট ডিরেক্টরিতে করা সমস্ত অনুরোধগুলি কীভাবে নেব এবং এনজিনেক্সে কোনও পুনর্নির্দেশ ছাড়াই একটি জসন স্ট্রিংটি ফেরত আনার চেষ্টা করছি।

উদাহরণ:

curl -i http://example.com/api/call1/

প্রত্যাশিত ফলাফল:

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}

আমার এনগিনেক্সের কনফিডে এখন পর্যন্ত যা আছে তা এখানে:

location ~ ^/api/(.*)$ {
    index /api_logout.json;
    alias /path/to/file/api_logout.json;
    types { }
    default_type "application/json; charset=utf-8";
    break;
}

তবে, আমি যখন অনুরোধ করার চেষ্টা করি তখন সামগ্রী-প্রকারটি স্থায়ী হয় না:

$ 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}

এই কাজ করতে একটি ভাল উপায় আছে কি? আমি কীভাবে অ্যাপ্লিকেশন / জসন টাইপটি পেতে পারি?

সম্পাদনা: সমাধান!

আমি বুঝতে পেরেছি যে আপনি কেবল রিটার্নের স্টেটমেন্টে ম্যানুয়াল স্ট্রিংগুলি প্রেরণ করতে পারেন, তাই আমি এটির পরিবর্তে এলিয়াসগুলি ব্যবহার না করেই করেছি!

আমি ব্যবহৃত ফাইনাল কোড:

location /api {
    types { }
    default_type "application/json";
    return 200 "{\"logout\" : true"}";
}

উত্তর:


2

আপনি ক্যাচলের আচরণ পেতে পরিবর্তে পুনর্লিখন ব্যবহার করতে পারেন।

location /logout.json {
    alias /tmp/logout.json;
    types {
        application/json json;
    }
}
rewrite ^/api/.* /logout.json;

এটি আপনাকে / ব্লগআউট.জসনে পুনর্নির্দেশ করে না? আমি একটি 302 পুনর্নির্দেশ প্রতিক্রিয়া পাঠানো এড়াতে চেষ্টা করছি।
ব্যবহারকারী 749618

না, এটি একটি অভ্যন্তরীণ পুনর্লিখন । পুনর্নির্দেশগুলি কেবল তখনই প্রেরণ করা হয় যখন কোনও নিখুঁত অবস্থান নির্দিষ্ট করা হয় বা একটি redirectবা permanentপতাকা নির্দিষ্ট করা থাকে।
মিগ্রোর্ভেন

0

খুব সহজ. পুরো কনফিগারেশনটি হ'ল:

# default.conf
# Add file here: /etc/nginx/html/logout.json

server {
  listen 80;
  rewrite ^.*$ /logout.json last;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.