অ্যাপাচি বনাম এনগিনেক্স


29

আমি সম্প্রতি আপাচি এবং এনগিনেক্সের মধ্যে পার্থক্যগুলি অনুসন্ধান করেছি এবং আমার যেটি চয়ন করা উচিত তা নিয়ে বিভ্রান্ত হয়ে পড়েছি।

আমি কিছু অনুসন্ধান করেছি কিন্তু দুজনের মধ্যে কোনও নির্দিষ্ট তুলনা নেই এবং আমি ভাবছিলাম যে এখানে কেউ যদি দুজনের মধ্যে পার্থক্য সম্পর্কে তাদের মতামত দিতে পারে।

আমার বর্তমান জ্ঞানটি আমাকে বুঝতে অনুমতি দেয় যে মোড_এইচপি দ্রুতগতির চেয়ে দ্রুত এবং আরও সুরক্ষিত তবে একসাথে সংযোগ এবং মেমরির ব্যবহারের ক্ষেত্রে অ্যাপাচি আরও খারাপ।

আমার সাইটটিতে প্রচুর দীর্ঘ পোলিং ব্যবহার করা হচ্ছে তবে একটি অজ্যাক্স ওয়েব বেস নেই (অর্থাত্ শীর্ষে দীর্ঘ পোলিং সহ অ্যাপাচি)।

অ্যাপাচস মেমরির সমস্যার জন্য আমার আসল সমাধানটি হ'ল নোড.জেএস এর মাধ্যমে দীর্ঘ ভোটদান প্রেরণ করা এবং তারপরে প্রতি 2 সেকেন্ডে অ্যাপাচে অ্যাক্সেসের জন্য নোড.জেএস পাওয়া যে ক্ষেত্রে অ্যাপাচে ওপেন সংযোগ না থাকলেও পরিবর্তে নোড.জেএস হবে। আমি উপলব্ধিতে এসেছি যে এটি যথেষ্ট ভাল নাও হতে পারে এবং বিভিন্ন সমাধানের দিকে তাকিয়ে আছি। আমার মূল ধারণাটি কাজ করত কিনা তা নিয়ে আমি এখনও আগ্রহী।

তাহলে আধুনিক ওয়েবের জন্য কোনটি ভাল? আপাচি নাকি এনগিনেক্স?

আপডেট: প্রদত্ত সমস্ত পরামর্শগুলি ভাল এবং বৈধ ছিল। আমি আসল দ্বিতীয় আইডিয়াটি দিয়ে চলেছি যা একটি সম্পূর্ণ এনগিনেক্স সার্ভার ব্যবহার করা। আমি সন্তুষ্ট যে একটি ডেডিকেটেড সার্ভার হয়ে আমি ফাস্টসিগি থেকে সুরক্ষার সমস্যাগুলি ভুগতে পারি না এবং যেহেতু আমার দীর্ঘ পোলিং স্ক্রিপ্টগুলি পিএইচপিতে লিখতে হবে আমার একটি সার্ভারের প্রয়োজন যা উচ্চ লোড যুগপত সংযোগগুলির সাথে ডিল করতে পারে এবং অ্যাপাচি কেবল এটিই করতে পারে না যতই ব্যাপার আমি কাঠামোটি পরিবর্তন করেছি এটি এখনও ক্ষুধার্ত স্মৃতি হয়ে থাকবে।

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

ধন্যবাদ,

উত্তর:


28

আপনার মনে হয় কয়েকটি ভুল ধারণা রয়েছে যা আমি মনে করি এটি সমাধান করা দরকার।

প্রথমত, মোড_এফপি কেবলমাত্র প্রান্তিক দ্রুত, আমার সমস্ত পরীক্ষাগুলি দেখিয়েছে যে পার্থক্যটি এতটাই ক্ষুদ্র যে এটি ফ্যাক্টরিংয়ের পক্ষে মূল্যহীন নয় I আমি সন্দেহও করি যে আপনি কোনও উত্সর্গীকৃত সার্ভারের দিকে তাকিয়ে দেখছেন বলে সুরক্ষা দিকটি আপনার পক্ষে প্রাসঙ্গিক এবং Mod_php কেবলমাত্র একটি ভাগ করা পরিবেশে কেবল একটি সুবিধা রয়েছে - প্রকৃতপক্ষে, একটি উত্সর্গীকৃত পরিবেশে পিএইচপি-এফপিএমের সুবিধা হবে পিএইচপি হিসাবে এবং আপনার ওয়েব সার্ভার এখন বিভিন্ন প্রক্রিয়া হিসাবে চালিত হয়, এবং এটি পিএইচপি- এফএম যেমন ধীর লগ।

যদি পৃথিবীটি কালো এবং সাদা ছিল তবে আমি বলতে চাই একটি খাঁটি এনজিনেক্স সেটআপ নিয়ে যান এবং পিএইচপি-এফএমপি দিয়ে পিএইচপি সংকলন করুন। আরও বাস্তবসম্মতভাবে যদি আপনি ইতিমধ্যে অ্যাপাচি কাজ করে থাকেন তবে এনগিনেক্সকে অ্যাপাচিতে একটি বিপরীত প্রক্সি তৈরি করুন এবং আপনি কয়েক ঘন্টা সেটআপের সময় সাশ্রয় করতে পারেন এবং পারফরম্যান্সের পার্থক্যটি ছোট হবে।

তবে ধরে নেওয়া যাক পৃথিবী এক সেকেন্ডের জন্য কালো এবং সাদা, কারণ এটি আরও অনেক দুর্দান্ত সেটআপগুলির জন্য করে। আপনি আপনার ওয়েব সার্ভারের জন্য nginx + php-fpm করেন। আপলোডগুলি সমাধান করতে আপনি আপগ্রেড মডিউলটি ব্যবহার করেন এবং এনজিএনএক্সের জন্য প্রগতি মডিউলটি আপলোড করেন। এর অর্থ হ'ল আপনার ওয়েব সার্ভারটি আপলোড গ্রহণ করে এবং ফাইলটি পিএইচপি-এর হয়ে যাওয়ার পরে এটি পাস হয়ে যায়, যাতে ফাইলটি এনজিএক্স এবং পিএইচপি-র মধ্যে দ্রুতগতি প্রোটোকলের মাধ্যমে প্রবাহিত হওয়ার দরকার হয় না, মিষ্টি। (এটি আমার একটি লাইভ সেটআপে রয়েছে এবং এটি দুর্দান্ত কাজ করছে, বিটিডাব্লু!)

ব্যবহারকারী ডাউনলোডের জন্য আপনি এনগিনেক্সস এক্স-প্রেরণ-ফাইল-জাতীয় বৈশিষ্ট্যটি x-accel-redirect বলে থাকেন, মূলত আপনি পিএইচপি-তে আপনার প্রমাণীকরণ করেন এবং একটি শিরোনাম সেট করেন যা এনজিনেক্স উঠে যায় এবং সেই ফাইলটি স্থানান্তর শুরু করে। পিএইচপি বাস্তবায়ন শেষ করে এবং আপনার ওয়েব সার্ভারটি হস্তান্তরটি পরিচালনা করছে, মিষ্টি! (আবার এটি আমার একটি লাইভ সেটআপে রয়েছে এবং এটি দুর্দান্ত কাজ করছে)

সার্ভার ও অন্যান্য দীর্ঘ চলমান অপারেশন জুড়ে ফাইলগুলি বিতরণ করার জন্য আমরা বুঝতে পারি যে পিএইচপি সত্যিই সেরা, এই অনুপযোগী তাই আমরা gearman, যা একটি কাজ যে সার্ভার এই বিভিন্ন সার্ভারে শ্রমিকদের মধ্যে কাজ বিতরণ করতে পারেন হয় ইনস্টল করুন, কোন কারখানায় এই শ্রমিকদের লেখা যেতে পারে কোন ভাষা. অতএব আপনি কোনও বিতরণ কর্মী তৈরি করতে পারেন এবং তাদের মধ্যে ৫০ টি এমবি পিএইচপি ব্যবহারের পরিবর্তে মোট ২০০ কেবি মেমরি ব্যবহার করে ব্যবহার করতে পারেন। মিষ্টি। (আমারও এই চলমান লাইভ রয়েছে, তাই এটি আসলেই সম্ভব)

আপনি যদি এখনও এটিকে গ্রহণ না করেন তবে আমি মনে করি যে আপনার অনেকগুলি সমস্যা আপনার ওয়েব সার্ভারের সাথে মোটেই সম্পর্কিত নয়, আপনি কেবল সেভাবেই ভাবেন কারণ অ্যাপাচি আপনার কাঠামোর কারণে এটি আপনার ওয়েব সার্ভারের সাথে সম্পর্কিত হতে বাধ্য করে, প্রায়শই কাজের জন্য আরও ভাল সরঞ্জামগুলি পিএইচপি এবং পিএইচপি হ'ল এমন একটি ভাষা যা এটি জানে এবং পিএইচপি ছাড়াই অফ-লোডিংয়ের কাজের জন্য দুর্দান্ত বিকল্প সরবরাহ করে।

আমি অত্যন্ত জোর করে এনজিনেক্সের পরামর্শ দেব, তবে আমি আরও মনে করি যে আপনার অন্যান্য সমস্যার জন্য আপনার অন্যান্য বিকল্পগুলির দিকে নজর দেওয়া উচিত, যদি আপনার কোনও স্কেলিং বা পারফরম্যান্স সমস্যা থাকে তবে আমাকে লিখতে নির্দ্বিধায়। আপনি যদি এখানে মাধ্যমে বার্তা প্রেরণ করতে পারেন তবে আমি জানি না তবে অন্যথায় আমাকে মার্টিন@ বিবিটিএন.us এ লিখুন কারণ আমি এনজিনেক্সের সাথে ট্যাগ না থাকা কোনও কিছুর জন্য সার্ভার দোষ নেই। :)


1
অভিশাপ যা সত্যই জিনিসগুলি পরিষ্কার করে দিয়েছে :) ধন্যবাদ এটি সেই ব্যাখ্যা ছিল যা আমি খুঁজছিলাম। আমি মনে করি আমি এখন Nginx শেখার জন্য বেশ বিক্রি করেছি যেহেতু আপাচি আমার সাইটটি ব্যবহার করে শ্বাসরোধ করবে এবং মারা যাবে। ভাগ্যক্রমে এটি এটিকে সরানো সত্যিই বেশ সহজ দেখাচ্ছে। আমার অর্থ নোড.জেজে থাকা লোকেরা এতে বেশিরভাগ জিনিস লিখতে বলেছেন এবং আপনার পিএইচপি সেশন ক্লাসটি পোল করুন যদি আপনার সত্যিই প্রয়োজন হয় (ব্যবহারকারীরা যখন উইন্ডোজগুলি বন্ধ করেন তখন সনাক্ত করার কোনও উপায় না থাকলে আমি তা করি: পি)। হ্যাঁ আমি একটি বিশাল সার্ভার ফার্মে চলছে তাই কোনও সুরক্ষা হুমকি নেই তা জেনেও টন সাহায্য করে, দুর্দান্ত ব্যাখ্যাটির জন্য ধন্যবাদ :)
সামায়ায়ে

আমি এই দিকে তাকিয়ে ছিলাম : joeandmotorboat.com/2008/02/28/… এবং এটি : blog.webfaction.com/a-little-h হল- প্রেজেন্ট এবং এটি সত্যিই আমাকে দীর্ঘস্থায়ী হতে সক্ষম হওয়ার চিন্তায় মজা করছে আমার হৃদয়ে কন্টেন্ট সত্যই পোল। অ্যাপাচি :) এর বিপরীতে একটি মেমরির সমস্যা নয় :)
সামায়ায়ে

অপেক্ষা করুন তাই আপনার বক্তব্যটি আমি জাভাতে মাল্ট্রিথ্রেড কর্মী তৈরি করতে পারলাম এবং পিএইচপি এটিকে পুরোপুরি কাজ করতে পারে? আমি বলতে চাইছি সবচেয়ে বড় সমস্যাটি হ'ল সার্ভারটি যেহেতু লম্বা ভোটদানের সাহায্যে অ্যাপাচি-র সাথে প্রচুর স্মৃতি সমস্যা রয়েছে যা সাধারণ ... এনসিএনএক্স দ্বারা নির্ধারিত of
সম্মেয়ে

1
মূলত হ্যাঁ, আমার কাছে সিটিতে ফাইল বিতরণ কর্মীরা লিখিত আছে, পিএইচপি-র জন্য গিয়ারম্যান এক্সটেনশন ব্যবহার করে আমি গিয়ারম্যান জব সার্ভারে একটি বিতরণ কাজ প্রেরণ করি এবং এটি কোনও কর্মীর কাছে প্রেরণ করে, যা যে কোনও ভাষায় লেখা যেতে পারে; পিএইচপি, জাভা, সি ইত্যাদি এই কর্মী তখন এটি কাজ করে এবং গিয়ারম্যানকে স্ট্যাটাস রিপোর্ট করে, যা পিএইচপি-তে ফিরে রিপোর্ট করে। (যদি না কোনও পটভূমির কাজ বেছে নেওয়া হয়, তবে এই ক্ষেত্রে পিএইচপি এটির জন্য অপেক্ষা না করেই শেষ হয়)
মার্টিন ফজর্ডভাল্ড

2
আমি জানি এটি একটি পুরাতন পোস্টিং তবে আমার বলতে হবে, এটি এনজিঙ্কস বনাম অ্যাপাচি বিষয়ে আমি সর্বাধিক তথ্যবহুল পোস্ট পেয়েছি। থান মার্টিন, +1।
আকোই মেক্সেক্স

5

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


হ্যাঁ এটি বেশিরভাগ লোকেরা এটিই করছে বলে মনে হচ্ছে আমি অবশ্যই অবশ্যই এটি দেখতে হবে :)
সামায়া

1
অ্যাপাচের জন্য মোড_আরপিএফ ইনস্টল করার কথা মনে রাখবেন যাতে আপনি লগিংয়ের উদ্দেশ্যে ক্লায়েন্টের আইপি অ্যাড্রেসগুলি দিয়ে যেতে পারেন (অন্যথায় অ্যাপাচি লগগুলি 127.0.0.1 থেকে সমস্ত অনুরোধগুলি দেখায়), নিম্নলিখিতটি এনজিন্স কনফিগারেশনে যুক্ত করুন: প্রক্সি_সেট_হেডার এক্স-ফরওয়ার্ড-ফর xy প্রক্সি_অ্যাড_এক্স_ফোরওয়ার্ড_ জন্য;
গ্রেগ আনানডালে

আজ রাতে আজ চেষ্টা করার আগে আমি একটা জিনিস অবাক করে দিয়েছি। যদি আমি এনগিনেক্সের মাধ্যমে আপাচে যা আমার পিএইচপি পরিবেশন করে যাচ্ছি তার মানে কি দীর্ঘ পোলিংয়ের পরেও অ্যাপাচি-র মতো একই সমস্যা থাকবে বা বিপরীত প্রক্সিতে এটিকে কল করা কোনওভাবে আপাচিকে আলাদাভাবে আচরণ করে?
সামায়ায়ে

1

আমি এতটা নিশ্চিত নই যে Mod_php এর বিকল্পগুলির চেয়ে দ্রুততর, আপনি এটি কোথায় পড়েন? আমি এনজিএনএক্স + পিএইচপি-এফপিএম দিয়ে কিছু ল্যাব টেস্টিং করেছি এবং যা আমি মাপা করেছি সেখান থেকে এটি অন্য প্রতিটি সেটআপকে মারধর করে।

এই সেটআপটি একবার দেখুন: http://interfacelab.com/nginx-php-fpm-apc-awesome/

আমি এটি প্রায় একই সেট আপ করেছি, আমি http://www.dotdeb.org/ থেকে পিএইচপি প্যাকেজগুলি ব্যবহার করি - যার মধ্যে একটি পিএইচপি-এফপিএম প্যাকেজ এবং একটি init স্ক্রিপ্ট ব্যবহারের জন্য প্রস্তুত রয়েছে। আমি মেমকেচে বা সিঙ্ক ব্যবহার করি না।


stackoverflow.com/questions/78108/… এখান থেকে পেয়েছি এবং আমি পিএইচপি ম্যানুয়াল পরীক্ষা করে দেখেছি এবং এটি বলে যে পিএইচপি_মড সিজি সংস্করণগুলিতে উল্লেখযোগ্য সুবিধা সরবরাহ করে। আপনার সেটআপটি দুর্দান্ত দেখাচ্ছে। এটা খুব সহজ দেখাচ্ছে। আমি এটি সন্ধান করব :)
সামায়ায়ে

2
এতে বলা হয়েছে যে সিজিআই
বিল্টিন

1
ভাল - আপনি যদি পিএইচপি প্রক্রিয়াজাতকরণের মৃত্যুর (বা সময় নির্ধারণের) বিষয়ে উদ্বিগ্ন হন তবে ফাস্টসিজিআই (বা পিএইচপি-এফপিএম) যাওয়ার উপায়। এটি অন্যান্য ক্রিয়াকলাপ ব্যাহত না করে মৃত শিশু প্রক্রিয়াটি বন্ধ করতে পারে।
পৌষ

1
হ্যাঁ। বা, ভাল, এটি নির্ভর করে। একই সময়ে আপনি কয়টি (সর্বাধিক) সংখ্যক ধীর অনুরোধগুলি প্রক্রিয়া করবেন? এটিতে সর্বাধিক পিএইচপি এফপিএম থ্রেড সেট করুন, এবং "দ্রুত" সিজি'র সংখ্যাটি আপনি উপলভ্য করতে চান। আমি শুনেছি যে লোকেরা 4 জিবি র‌্যাম সহ একটি সার্ভারে 200 পিএইচপি-এফপিএম শিশুদের চালাচ্ছে, তাই আমি যদি আপনি থাকতাম তবে আমি এই বিষয়ে খুব বেশি চিন্তা করব না। পিএইচপি (5.3.3) এর পরবর্তী সংস্করণে পিএইচপি-এফপিএমকে স্ট্যান্ডার্ড অনুসারে অন্তর্ভুক্ত করা হবে, যেখানে একটি অ্যাডপটিভ ইঞ্জিনও অন্তর্ভুক্ত রয়েছে - এটি আপনার কতগুলি অনুরোধ মুলতুবি রয়েছে তা অনুসারে এটি স্কেল হবে।
পৌষ

1
আমি সহজেই একাধিক সার্ভারের উপর দিয়ে চলতে পারি (সম্ভবত 10 অবধি) তবে আমি যদি 200 টি অনুরোধগুলি ফিট করতে পারি যা 4 জিবি সার্ভারে দীর্ঘ পোল করা যায় তবে এটি প্রায় 20 টি সার্ভারের অর্ধেক হওয়া উচিত যা আমার অ্যাপাচি চালানোর প্রয়োজন। হুমমম ... আজ রাতেই আমার এটি পরীক্ষা করা দরকার
সামায়ায়ে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.