আমি অ্যাপাচি ২.২ এর মাধ্যমে mod_proxy
এবং এর মাধ্যমে লোড ব্যালেন্সার সেটআপ করেছি mod_proxy_balancer
। লোড ভারসাম্য ঠিক ঠিক কাজ করে, তবে একটি ক্ষেত্রে আমি কোনও কনফিগারেশন বিকল্প খুঁজে পাই না, যেমন ব্যাকএন্ড সার্ভারগুলিতে অবিচ্ছিন্ন সংযোগগুলি ব্যবহার করার সময়, যখন তাদের মধ্যে কোনও মারা যায় (বন্ধ হয়ে যায়, ক্র্যাশ ইত্যাদি), এটির সাথে বিদ্যমান সংযোগগুলি এখনও এটি অ্যাক্সেস করার চেষ্টা করুন।
অ্যাপাচি লোড ব্যালেন্সারকে কনফিগার করার কোনও উপায় আছে যাতে এটি মৃত ব্যাকএন্ড সার্ভারের সাথে সংযোগগুলি ছেড়ে দেয় বা পুনরায় তৈরি করে? LVS বিশ্বে Ldirector এর কাছে প্রোক এফএস এর অধীনে একটি বিকল্প রয়েছে যা কেবল এটি পরিচালনা করে:
/proc/sys/net/ipv4/vs/expire_quiescent_template
যখন এটি স্থায়ী সেশন / সংযোগ স্থাপন করা হয় বা একটি ডেড ব্যাকএন্ড সার্ভার ফ্লাশ করা হবে যাতে পরবর্তী ক্লায়েন্টের অনুরোধে সেগুলি পুনরায় তৈরি করা যায়।
অ্যাপাচি বিশ্বে এর সাথে কি মিল রয়েছে?
পিএস কোন উপায়ে অ্যাপাচি ব্যাকএন্ড সার্ভারের স্থিতি পরীক্ষা করে? এটি কি কোনও বন্দর বা এর মতো কোনও কিছুর সাথে সংযোগ স্থাপনের চেষ্টা করে? যদি কেউ তার উপরও কিছুটা আলোকপাত করতে পারে তবে দুর্দান্ত হবে!
এখানে আমার ভার্চুয়াল হোস্ট কনফিগারেশন ফাইলটি রয়েছে:
সার্ভারএডমিন অ্যাডমিন@mysite.com সার্ভারনাম myapp.mysite.com
DocumentRoot /srv/www/vhosts/myapp.mysite.com
ErrorLog /var/log/apache2/myapp.mysite.com-error_log
CustomLog /var/log/apache2/myapp.mysite.com-access_log combined
HostnameLookups Off
UseCanonicalName Off
ServerSignature On
ScriptAlias /cgi-bin/ "/srv/www/vhosts/myapp.mysite.com/cgi-bin/"
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from bmf.intern.netz
</Location>
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://myapp>
BalancerMember http://172.22.1.133:777/ loadfactor=10 route=1 connectiontimeout=200ms
BalancerMember http://172.22.1.134:777/ loadfactor=10 route=2 connectiontimeout=200ms
ProxySet stickysession=ROUTEID
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass /balancer-manager !
ProxyPass /server-status !
ProxyPass / balancer://myapp/ lbmethod=byrequests
ProxyPassReverse / balancer://myapp/
<Directory "/srv/www/vhosts/myapp.mysite.com/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/srv/www/vhosts/myapp.mysite.com">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>