সিআরএল কি সকেটে অনুরোধ পাঠাতে পারে?


75

আমার একটি HTTP সার্ভার চালু আছে /var/run/my-server.sockএবং আমি সিআরএল ব্যবহার করে একটি সাধারণ অনুরোধ প্রেরণ করে এটি পরীক্ষা করতে চাই। এটি কি সিআরএল ব্যবহার করে করা যায়? এটি আদৌ করা যেতে পারে, বা কোনও জায়গায় বিপরীত প্রক্সি থাকতে হবে?

আমি এই জাতীয় কিছু কল্পনা করছি:

curl socket:/var/run/my-server.sock:/test/path

উত্তর:


107

বৈশিষ্ট্যটি কার্ল যুক্ত করা হয়েছিল 7.40

curl --unix-socket /var/run/docker.sock http:/images/json

আরেকটি উদাহরণ:

curl --no-buffer -XGET --unix-socket /docker.sock http:/events

যা GETসুস্পষ্টভাবে (অনুমানের পরিবর্তে) নির্দিষ্ট করে । এবং বাফার করবে না ( tail -fরিয়েলটাইম আপডেটের জন্য)।

(কার্ল 7.40 বা এর চেয়ে নতুনের সাথে জাহাজে পাঠানো প্রথম উবুন্টু ছিল 15.10)।

হোস্টনাম সহ সিআরএল 50.50০ এবং তার জন্য একটি বৈধ ইউআরএল সরবরাহ করা প্রয়োজন , সুতরাং উপরের উদাহরণগুলি সিআরএল 50.50০ সহ চালানোর জন্য একটি "ডামি" হোস্টনাম যুক্ত করতে হবে, উদাহরণস্বরূপ:

curl --unix-socket /var/run/docker.sock http://localhost/images/json

এবং

curl --no-buffer -XGET --unix-socket /docker.sock http://localhost/events

1
এটা সত্যিই দারুন!
হুব্রো

এবং এই উদাহরণে আমি দেখতে পাচ্ছি খুব সকেট আমি যাচ্ছি curl। দীর্ঘজীবী ডকার!
স্পেসডিভার

যাইহোক, নেটকাট এবং সাক্ট উদাহরণগুলি এখন আর উপরে নেই :]
হুব্রো

এটি সত্যিই দরকারী। তবে, আমি এটি করার চেষ্টা করছি curl --no-buffer -XGET --unix-socket tcp://192.168.99.102:2376 http://eventsতবে কার্ল সার্ভারের সাথে সংযোগ করতে পারে না। আমি রুবি ডকার লাইব্রেরিটি ব্যবহার করার চেষ্টা করেছি এবং এটি ব্যবহার করে এটি সূক্ষ্মভাবে সংযোগ করে
ইউজার 1513388

1
@ ব্যবহারকারী1513388 আমি নিশ্চিত যে আপনাকে --unix-socketকোনও ইউআরআই নয়, যুক্তি হিসাবে সকেটের পথ সরবরাহ করতে হবে pretty
হুব্রো

8

নিশ্চিত নয়, তবে এই টিকিট অনুসারে:

এটা মনে হয় না।

এই প্রতি:

সাকট বা এনসি এটি করতে পারে বলে মনে হচ্ছে, উপরের স্নিপ থেকে স্নিপ করুন:

# Socat version
echo -e "GET /images/json HTTP/1.1\r\n" | socat unix-connect:/var/run/docker.sock STDIO

# nc version (netcat-freebsd)
echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock

নিজেই চেষ্টা করে দেখিনি।


4
এটি \r\n\r\nশেষ পর্যন্ত আপনি যে ব্যতিক্রমটি সরবরাহ করতে পারেন তা দিয়ে কাজ করে , না\r\n echo -e "GET / HTTP/1.1\r\n\r\n"
TheRusskiy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.