एक ही सिस्टम पर अपाचे के दो उदाहरण कैसे चलाएं (उबंटू)


14

मैं एक ही सिस्टम पर अपाचे के दो उदाहरण कैसे चला सकता हूं और उन्हें एक-दूसरे से स्वतंत्र रूप से शुरू और रोक सकता हूं। किसी भी मदद या नेतृत्व की सराहना की है।

जवाबों:


11

मुझे लगता है कि यह वही हो सकता है जो आप http://wiki.apache.org/httpd/RunningMultipleApacheststances देख रहे हैं

उपरोक्त लिंक में सामग्री के संदर्भ के लिए

1) अपने सर्वर पर अपाचे स्थापित करें

sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed

2) आप चलाना चाहते हैं प्रत्येक उदाहरण के लिए अलग अपाचे विन्यास कॉन्फ़िगर करें

उबंटू के लिए, यह एक अलग पोर्ट पर सुनने के लिए आवश्यक प्रत्येक उदाहरण के लिए / etc / apache2 में होना चाहिए।

# httpd-proxy.conf
Listen 80
ErrorLog /var/log/httpd-proxy-error.log
LoadModule proxy_module                 libexec/apache22/mod_proxy.so
LoadModule proxy_http_module            libexec/apache22/mod_proxy_http.so

# httpd-perl.conf
Listen 81
ErrorLog /var/log/httpd-perl-error.log
LoadModule perl_module                  libexec/apache22/mod_perl.so

# httpd-python.conf
Listen 82
ErrorLog /var/log/httpd-python-error.log
LoadModule python_module                libexec/apache22/mod_python.so

# httpd-php.conf
Listen 83
ErrorLog /var/log/httpd-php-error.log
LoadModule php5_module                        libexec/apache22/libphp5.so

इस उदाहरण में, 4 अलग-अलग उदाहरण चल रहे होंगे, प्रत्येक एक अलग मॉड्यूल प्रकार प्रसंस्करण, अर्थात् एक पर्ल के लिए, एक पायथन के लिए, आदि।

अब, आपको प्रॉक्सी होस्ट में वर्चुअल होस्ट को कॉन्फ़िगर करने की भी आवश्यकता है, ताकि जब भी कोई तोड़फोड़ डीएवी सर्वर के लिए अनुरोध आए, तो यह आपके 'पाइथन-डीएवी' अपाचे पर पारित हो जाए, जबकि आपके वर्डप्रेस ब्लॉग के अनुरोध आपके लिए पारित हो जाते हैं। php 'अपाचे उदाहरण। आइए 'httpd -xy.conf' को फिर से संपादित करें:

# httpd-proxy.conf
NameVirtualHost *:80
<VirtualHost *:80>
 DocumentRoot /www/wordpress
 ServerName blog.company.com
 ProxyPass / http://localhost:83/
 ProxyPassReverse / http://localhost:83/
 [... additional directives here ... ]
</VirtualHost>
<VirtualHost *:80>
 DocumentRoot /www/svn
 ServerName svn.company.com
 ProxyPass / http://localhost:82/
 ProxyPassReverse / http://localhost:82/
 [... additional directives here ... ]
</VirtualHost>
# you get the idea ...  

2 बी) सब कुछ का परीक्षण करें इसलिए हम कॉन्फ़िगरेशन के साथ समाप्त हो गए हैं, और अब हमें सभी एपाचे इंस्टेंस लॉन्च करने की आवश्यकता है, और परीक्षण करें कि सब कुछ अपेक्षित रूप से काम कर रहा है। बेशक आप 'अपाचेक्टल' का उपयोग करके ऐसा कर सकते हैं, जैसे

 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf configtest
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf start
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf configtest
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf start
 # and so on ...

3) उपयुक्त स्क्रिप्ट फ़ाइल के साथ अपाचे शुरू करने के लिए init स्क्रिप्ट कॉन्फ़िगर करें

लिंक किए गए संसाधन में इसके लिए rc.conf फ़ाइल को संपादित करने पर अधिक विवरण है लेकिन विशेष रूप से उबंटू से निपटने के लिए स्पर्श करता है इसलिए मैं इन दोनों वर्गों को नीचे हाइलाइट करूंगा।

FreeBSD में '/etc/rc.conf' सिस्टम कॉन्फ़िगरेशन> जानकारी युक्त मास्टर फ़ाइल है। यह फ़ाइल कर्नेल को बूट करने के बाद पढ़ी जाती है, और सेवाओं को लॉन्च करने के लिए कार्य करती है,> डेमोंस, नेटवर्क इंटरफेस सेट करती है, आदि। हमारे नुस्खा के लिए हम एपाचे को सक्षम कर पाएंगे> सर्वर, उपलब्ध इंस्टेंस (प्रोफाइल), उनकी कॉन्फ़िगरेशन फ़ाइलों को सूचीबद्ध करते हुए, और > फ्रीबीएसडी बता रहा है कि सिस्टम को बूट करने के बाद इनमें से कौन सा रन (सक्षम) होना चाहिए।

# /etc/rc.conf
apache22_enable="YES"
apache22_profiles="proxy perl python php"

# the apache proxy instance
apache22_proxy_configfile="/usr/local/etc/apache22/httpd-proxy.conf"
apache22_proxy_enable="YES"

# the apache perl instance
apache22_perl_configfile="/usr/local/etc/apache22/httpd-perl.conf"
apache22_perl_enable="YES"

# the apache python instance
apache22_python_configfile="/usr/local/etc/apache22/httpd-python.conf"
apache22_python_enable="YES"

# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="YES"

जब इन प्रोफाइल को /etc/rc.conf में कॉन्फ़िगर किया गया है, और सक्षम किया गया है, तो सिस्टम को सफलतापूर्वक बूट करने के बाद उन्हें शुरू किया जाएगा। यदि आप एक प्रोफ़ाइल घोषित करना चाहते हैं, लेकिन आप केवल चाहते हैं> इसी अपाचे उदाहरण को मैन्युअल रूप से शुरू करने के लिए, आप बस '/etc/rc.conf' को संपादित कर सकते हैं और कह सकते हैं, जैसे:

 # the apache php instance
 apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
 apache22_php_enable="NO"

बाद में, आप किसी भी अपाचे उदाहरण को केवल प्रोफ़ाइल नाम> (प्रॉक्सी, पर्ल, पायथन, php) का उपयोग करके शुरू / बंद कर सकते हैं, जैसे:

 /usr/local/etc/rc.d/apache22 start php
 /usr/local/etc/rc.d/apache22 stop perl
 ...

उबंटू के लिए 3 बी)

मुझे यकीन नहीं है कि यह इसी तरह (और दर्द रहित) होगा जैसा कि FreeBSD के मामले में है (ऊपर rconconf पर अनुभाग देखें)। FreeBSD में अपाचे पोर्ट के साथ स्थापित अपाचे आरसी स्क्रिप्ट अब वर्षों से विभिन्न प्रोफाइल की संभावना से अवगत हैं।

हाल ही में, उबंटू / डेबियन इनिट स्क्रिप्ट (जैसे /etc/init.d/apache2) अपाचे के कई उदाहरणों (जैसे कई कॉन्फ़िगरेशन, नाम / आदि / एपाचे 2- $ SUFFIX) का समर्थन करने के लिए अद्यतन किया गया है। उबंटू / डेबियन की रिहाई के आधार पर आप जो प्रयोग कर रहे हैं वह भाग्यशाली हो सकता है ... या नहीं।

यह फीचर फरवरी 2010 में 2.2.14-6 संस्करण में डेबियन में दिखाई दिया: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-Febdays/000295.html

उबंटू में, मावरिक (10.10) में अपाचे 2 पैकेज में ये पैच हैं: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubb3.1/changelog

हालाँकि ल्युसिड (10.04, लॉन्ग टर्म सपोर्ट रिलीज़) अपाचे 2 जाहिरा तौर पर नहीं है: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu4.4/changelog

दस्तावेज़ीकरण /usr/share/doc/apache2/README.multiple-instances में पाया जा सकता है


कितनी बड़ी गड़बड़ है। आप के लिए कोई अपमान नहीं, मैं बस यह कहना चाहता हूं कि लिनक्स के साथ इस तरह के सामान को करने के लिए एस में दर्द है।
शालिक

सुनिश्चित नहीं है कि मैं दूसरी उल्लिखित स्थापना प्रक्रिया को किसी भी आसान के रूप में देखता हूं ... इसलिए मूल उत्तर के संदर्भ में ... हमें प्रॉक्सी की आवश्यकता क्यों है? क्या प्रत्येक अलग-अलग विन्यास केवल अलग-अलग बंदरगाहों से बंधने के लिए पर्याप्त नहीं है?
एलेक्स.बैरीस्की

5

अपने विस्तृत जवाब के लिए धन्यवाद, लेकिन बाद में मैं इस लिंक मिल गया http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ प्रक्रिया इस बहुत ही सरल में दिखाया गया है।

जब हम अपाचे को स्थापित करते हैं, तो एक /usr/share/doc/apache2.2-common/README.multiple-instancesफ़ाइल होती है, जो आपको एक विचार देती है कि अपाचे उदाहरण बनाने के लिए वास्तव में क्या करने की आवश्यकता है।

उसी निर्देशिका के अंदर एक निर्देशिका होती है examplesजिसमें एक स्क्रिप्ट होती है जिसका नाम setup-instanceहम एक अपाचे उदाहरण बनाने के लिए उपयोग कर सकते हैं। इसलिए, एक और अपाचे उदाहरण बनाने के लिए जो करना है वह है:

sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1

जहाँ web-server1एक प्रत्यय है। यही है, यह आपके उदाहरण के लिए डिफ़ॉल्ट रूप से "apache2-" जोड़ता है।

यह एक नई डायरेक्टरी बनाएगा /etc/apache-web-server1जिसमें सभी कॉन्फिग फाइल हैं। यह भी बनाएगा /etc/init.d/apache-web-server1जिसका उपयोग आप नए अपाचे उदाहरण को शुरू करने के लिए कर सकते हैं।


Ubuntu 14.04 LTS पर doc डायरेक्टरी / usr / share / doc / apache2 /
जोसिप रॉडिन

वास्तव में मुझे लगता है कि यह एक बेहतर समाधान है क्योंकि यह सिस्टम सेवा दृष्टिकोण के माध्यम से अलग शुरुआत / रोक देता है, और उदाहरण अत्यधिक स्वतंत्र हैं।
बीफग्यूसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.