আমি JSON ডেটা ফেরত কিছু ওয়েবসার্ভিস লিখছি, যার প্রচুর ব্যবহারকারী রয়েছে।
আমার সার্ভারের সামনে Nginx ব্যবহারের কী কী সুবিধা রয়েছে কেবলমাত্র এইচটি এইচপি সার্ভার ব্যবহারের তুলনায়?
আমি JSON ডেটা ফেরত কিছু ওয়েবসার্ভিস লিখছি, যার প্রচুর ব্যবহারকারী রয়েছে।
আমার সার্ভারের সামনে Nginx ব্যবহারের কী কী সুবিধা রয়েছে কেবলমাত্র এইচটি এইচপি সার্ভার ব্যবহারের তুলনায়?
উত্তর:
এটা নির্ভর করে.
বাক্সের বাইরে, একটি বিপরীত প্রক্সি হিসাবে সামনে nginx স্থাপন আপনাকে দিতে চলেছে:
গো এইচটিটিপি সার্ভারটি খুব ভাল, তবে আপনাকে এই জিনিসগুলির কয়েকটি করতে চাকাটি পুনরায় উদ্ভাবন করতে হবে (যা ভাল: এটি সবার কাছে বোঝানো নয়)।
আমি সবসময় সামনে nginx রাখা সহজ পেয়েছি — যা এটি ভাল — এবং এটি "ওয়েব সার্ভার" স্টাফ করতে দেয়। আমার গো অ্যাপ্লিকেশনটি অ্যাপ্লিকেশন স্টাফ করে এবং কেবলমাত্র সর্বনিম্ন শিরোনাম / ইত্যাদি। এটি প্রয়োজন। একটি "খারাপ" জিনিস হিসাবে সামনে nginx রাখার দিকে তাকান না।
log
প্যাকেজটি ব্যবহার করে )। আপনি যদি আইপি ঠিকানা, উত্স অ্যাক্সেস ইত্যাদি লগ করতে চান তবে আপনাকে এটি লিখতে হবে। বেসিকগুলি ছাড়াই, শিরোনাম স্থাপনের ক্ষেত্রে একই কাজ। যদিও আমার কাছে কোনও কংক্রিট ডেটা নেই, গো এর সামনে এনজিনেক্সের চেয়ে সত্যিকার অর্থে কোনও ধীর হওয়া উচিত নয়: আসলে এটি জিজিপ এবং তার নিজস্ব অপ্টিমাইজেশনের জন্য দ্রুত ধন্যবাদ হতে পারে। "ব্যয়" আরও মেমরি / সিপিইউ ব্যবহার হবে, তবে এনগিনেক্সও সেই ফ্রন্টে খুব দক্ষ।
গো এর স্ট্যান্ডার্ড HTTP সার্ভার ঠিক আছে। যদি আপনার অ্যাপ্লিকেশনটি বেশিরভাগ / কেবল "গতিশীল" অনুরোধ / প্রতিক্রিয়া হয় তবে তা সত্যিই সেরা উপায়।
আপনি স্থিতিশীল সম্পদের পরিবেশন করতে এনজিনেক্স ব্যবহার করতে পারেন তবে সম্ভবত স্ট্যান্ডার্ড গো ওয়ানও এটির জন্য খুব ভাল। আপনার যদি উচ্চতর পারফরম্যান্সের প্রয়োজন হয় তবে আপনার বার্নিশ (উদাহরণস্বরূপ) দিয়ে যতটা সম্ভব সিডিএন বা ক্যাশে ব্যবহার করা উচিত।
যদি আপনাকে একই আইপি ঠিকানার বাইরে বিভিন্ন অ্যাপ্লিকেশন পরিবেশন করতে হয় তবে বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে অনুরোধগুলি বিতরণের জন্য প্রক্সিটির জন্য এনজিনেক্স একটি সূক্ষ্ম পছন্দ; যদিও আমি প্রায়শই এই ধরণের জিনিসটির জন্য বার্নিশ বা এইচপি প্রক্সিকে টুলবক্স থেকে বের করে আনতাম।
গরিলা ওয়েব টুলকিট আপনি দেয়:
schema
প্যাকেজ ফর্মের মানগুলিকে স্ট্রাক্টে রূপান্তর করে।এটি net/http
এনজিআইএনএক্স এর মতো গো এবং এইচটিটিপি সার্ভারের মধ্যে অনেক ব্যবধান পূরণ করে।
ব্যক্তিগতভাবে, আমি অন্য কোনও এইচটিটিপি সার্ভারটি ইনস্টল এবং কনফিগার করা এড়াতে চাই net/http
যদি আমি জানি যে আমি এর পরিবর্তে সিডিএন প্লাগ করতে পারি।
আমি মনে করি net/http
যে কোনও স্ট্যান্ডার্ড লাইব্রেরিতে সবচেয়ে শক্তিশালী HTTP সার্ভার রয়েছে server
Https://blog.gopheracademy.com/caddy-a-look-inside/ থেকে দেখে মনে হচ্ছে গো মিডলওয়্যার ব্যবহার করে জিজিপ, ত্রুটি, স্ট্যাটিক ফাইল, রাউটিং এবং HTTP শিরোনাম পরিচালনা করতে পারে। ব্লগ থেকে নীচের লাইনটি আপনি কীভাবে এই জাতীয় অনুরোধটি পরিচালনা করবেন তা দেখান।
logHandler(gzipHandler(fileServer))
তারা সত্যই আকর্ষণীয় উপায়ে লগ ইন করতে ত্রুটি পরিচালনা করে। যতক্ষণ না আপনার মিডলওয়্যার একটি ত্রুটি কোড (ইন্ট) প্রদান করে ততক্ষণ ত্রুটি-হ্যান্ডলিং মিডলওয়্যার এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে। তারা এমনকি এনগিনেক্সের মতো গোতে পুরো সাইটটি কনফিগার করতে চলে গেছে। "সমস্ত গোফার একাডেমির ওয়েবসাইটগুলির জন্য nginx.conf ফাইলটি ১১১ টি লাইনের বেশি ছিল C