গো জন্য একটি ওয়েবসার্ভারের সামনে এনগিনেক্স ব্যবহার করার সুবিধা কী কী? [বন্ধ]


86

আমি JSON ডেটা ফেরত কিছু ওয়েবসার্ভিস লিখছি, যার প্রচুর ব্যবহারকারী রয়েছে।

আমার সার্ভারের সামনে Nginx ব্যবহারের কী কী সুবিধা রয়েছে কেবলমাত্র এইচটি এইচপি সার্ভার ব্যবহারের তুলনায়?


fyi, পিয়ারের মাধ্যমে সংযোগ পুনরায় সেট করার মতো অনেকগুলি টিসিপি ত্রুটি ছিল এবং 100 / বড় পোস্টের এক মিনিটের অনুরোধে পরিষেবাটি পরিচালনার জন্য গো HTTP সার্ভার ব্যবহার করে i / o টাইমআউটস রয়েছে। সামনে nginx রাখুন - আর সমস্যা নেই।
পিটার কেলি

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

20
এটি প্রয়োজনীয় মতামত ভিত্তিক নয়। এটিকে বন্ধ করা বিবেচ্য বিষয়গুলি এবং সতর্কতাগুলির তীব্র বোঝার ঘাটতি দেখায় যে এই জাতীয় প্রশ্নের উত্তর পূরণ করতে এবং সরবরাহ করতে পারে। নির্বাচিত উত্তরটি একটি দুর্দান্ত উদাহরণ। আসলে, আমি সরবরাহিত সমস্ত উত্তরে প্রাসঙ্গিক নতুন বিবেচনাগুলি দেখতে পাচ্ছি।
vee_ess

উত্তর:


136

এটা নির্ভর করে.

বাক্সের বাইরে, একটি বিপরীত প্রক্সি হিসাবে সামনে nginx স্থাপন আপনাকে দিতে চলেছে:

  • লগ অ্যাক্সেস করুন
  • ত্রুটি লগ
  • সহজ এসএসএল সমাপ্তি
  • এসপিডিওয়াই সমর্থন
  • gzip সমর্থন
  • কয়েকটি লাইনে নির্দিষ্ট রুটের জন্য এইচটিটিপি শিরোনাম সেট করার সহজ উপায়
  • খুব দ্রুত স্ট্যাটিক সম্পদ পরিবেশন করা (আপনি যদি এস 3 / ইত্যাদি সরবরাহ করছেন তবে এটি প্রাসঙ্গিক নয়)

গো এইচটিটিপি সার্ভারটি খুব ভাল, তবে আপনাকে এই জিনিসগুলির কয়েকটি করতে চাকাটি পুনরায় উদ্ভাবন করতে হবে (যা ভাল: এটি সবার কাছে বোঝানো নয়)।

আমি সবসময় সামনে nginx রাখা সহজ পেয়েছি — যা এটি ভাল — এবং এটি "ওয়েব সার্ভার" স্টাফ করতে দেয়। আমার গো অ্যাপ্লিকেশনটি অ্যাপ্লিকেশন স্টাফ করে এবং কেবলমাত্র সর্বনিম্ন শিরোনাম / ইত্যাদি। এটি প্রয়োজন। একটি "খারাপ" জিনিস হিসাবে সামনে nginx রাখার দিকে তাকান না।


আপনার উত্তর দেওয়ার জন্য ধন্যবাদ! - 1) গো HTTP কোনও ধরণের লগ তৈরি করে? - ২) এনগিনেক্স কি কোনওভাবে অনুরোধ / প্রতিক্রিয়া থ্রুপুট হ্রাস করে?
ড্যানিয়েল বি

4
@ ড্যানিলেব গো HTTP সার্ভারটি কেবলমাত্র যে লগগুলিতে চান তা তৈরি করে (অর্থাত logপ্যাকেজটি ব্যবহার করে )। আপনি যদি আইপি ঠিকানা, উত্স অ্যাক্সেস ইত্যাদি লগ করতে চান তবে আপনাকে এটি লিখতে হবে। বেসিকগুলি ছাড়াই, শিরোনাম স্থাপনের ক্ষেত্রে একই কাজ। যদিও আমার কাছে কোনও কংক্রিট ডেটা নেই, গো এর সামনে এনজিনেক্সের চেয়ে সত্যিকার অর্থে কোনও ধীর হওয়া উচিত নয়: আসলে এটি জিজিপ এবং তার নিজস্ব অপ্টিমাইজেশনের জন্য দ্রুত ধন্যবাদ হতে পারে। "ব্যয়" আরও মেমরি / সিপিইউ ব্যবহার হবে, তবে এনগিনেক্সও সেই ফ্রন্টে খুব দক্ষ।
এলিথার

16
আরও একটি বড় বৈশিষ্ট্য: আপনি কীভাবে আপনার অ্যাপ্লিকেশনটিকে আপগ্রেড / রক্ষণাবেক্ষণ করবেন (প্যাকেটগুলি নামার সময় না ফেলে)? Nginx আপনাকে প্যাকেটগুলি ছাড়াই ছাড়িয়ে ট্র্যাফিক চালিয়ে দেবে।
ব্রেভনিউকেন্সি

+1, এনগিনেক্স নিজস্ব জায়গায় রয়েছে।
আনাতলি

4
আমার রাস্পবেরি পাইয়ে, এনগিনেক্সকে গোয়ের সামনে রেখে পৃষ্ঠার লোডের গতি উল্লেখযোগ্যভাবে বৃদ্ধি পেয়েছে।
425nesp

17

গো এর স্ট্যান্ডার্ড HTTP সার্ভার ঠিক আছে। যদি আপনার অ্যাপ্লিকেশনটি বেশিরভাগ / কেবল "গতিশীল" অনুরোধ / প্রতিক্রিয়া হয় তবে তা সত্যিই সেরা উপায়।

আপনি স্থিতিশীল সম্পদের পরিবেশন করতে এনজিনেক্স ব্যবহার করতে পারেন তবে সম্ভবত স্ট্যান্ডার্ড গো ওয়ানও এটির জন্য খুব ভাল। আপনার যদি উচ্চতর পারফরম্যান্সের প্রয়োজন হয় তবে আপনার বার্নিশ (উদাহরণস্বরূপ) দিয়ে যতটা সম্ভব সিডিএন বা ক্যাশে ব্যবহার করা উচিত।

যদি আপনাকে একই আইপি ঠিকানার বাইরে বিভিন্ন অ্যাপ্লিকেশন পরিবেশন করতে হয় তবে বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে অনুরোধগুলি বিতরণের জন্য প্রক্সিটির জন্য এনজিনেক্স একটি সূক্ষ্ম পছন্দ; যদিও আমি প্রায়শই এই ধরণের জিনিসটির জন্য বার্নিশ বা এইচপি প্রক্সিকে টুলবক্স থেকে বের করে আনতাম।


হ্যাঁ, আমি আসলে এটি কেবল গতিশীল ডেটা সরবরাহ করার জন্য ব্যবহার করছি। সুতরাং, আমি অনুমান করি যে তখন আমার এনজিআইএনএক্স প্রয়োজন হবে না! আপনার উত্তরের জন্য ধন্যবাদ
ড্যানিয়েল বি

বার্নিশ / HAProxy প্রয়োজন হয় না, Nginx ক্যাচিং এবং লোড ব্যালেন্সিংয়ের জন্য অনুরূপ টুলসেট রয়েছে।
আনাতলি

@ মিখাইলভ কি আমি যা বলেছিলাম তাই না? nginx এটির জন্য ভাল কাজ করে; যদিও ব্যক্তিগতভাবে আমি প্রায়শই বার্নিশ বা এইচআরসি পছন্দ করি। আমি এগুলি কনফিগার করা এবং পরিচালনা করা সহজ বলে মনে করি।
Bjørn Hansen

5

গরিলা ওয়েব টুলকিট আপনি দেয়:

  • উন্নত রাউটিং (ডোমেন / সাবডোমেন সীমাবদ্ধতা, রেজেক্স পাথ মিল)।
  • জিজিপ সমর্থন ( মিডলওয়্যার হ্যান্ডলারের মাধ্যমে ))
  • মিডিয়াওয়্যার হ্যান্ডলারে লগিং করা যা অ্যাপাচি কমন লগ ফর্ম্যাটে আউটপুট দেয়।
  • এনক্রিপ্ট করা কুকিগুলি সুরক্ষিত করুন।
  • সেশনস।
  • schema প্যাকেজ ফর্মের মানগুলিকে স্ট্রাক্টে রূপান্তর করে।

এটি net/httpএনজিআইএনএক্স এর মতো গো এবং এইচটিটিপি সার্ভারের মধ্যে অনেক ব্যবধান পূরণ করে।

ব্যক্তিগতভাবে, আমি অন্য কোনও এইচটিটিপি সার্ভারটি ইনস্টল এবং কনফিগার করা এড়াতে চাই net/httpযদি আমি জানি যে আমি এর পরিবর্তে সিডিএন প্লাগ করতে পারি।

আমি মনে করি net/httpযে কোনও স্ট্যান্ডার্ড লাইব্রেরিতে সবচেয়ে শক্তিশালী HTTP সার্ভার রয়েছে server


2

Https://blog.gopheracademy.com/caddy-a-look-inside/ থেকে দেখে মনে হচ্ছে গো মিডলওয়্যার ব্যবহার করে জিজিপ, ত্রুটি, স্ট্যাটিক ফাইল, রাউটিং এবং HTTP শিরোনাম পরিচালনা করতে পারে। ব্লগ থেকে নীচের লাইনটি আপনি কীভাবে এই জাতীয় অনুরোধটি পরিচালনা করবেন তা দেখান।

logHandler(gzipHandler(fileServer))

তারা সত্যই আকর্ষণীয় উপায়ে লগ ইন করতে ত্রুটি পরিচালনা করে। যতক্ষণ না আপনার মিডলওয়্যার একটি ত্রুটি কোড (ইন্ট) প্রদান করে ততক্ষণ ত্রুটি-হ্যান্ডলিং মিডলওয়্যার এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে। তারা এমনকি এনগিনেক্সের মতো গোতে পুরো সাইটটি কনফিগার করতে চলে গেছে। "সমস্ত গোফার একাডেমির ওয়েবসাইটগুলির জন্য nginx.conf ফাইলটি ১১১ টি লাইনের বেশি ছিল C

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.