2010-08-17 19 views
8

मुझे हाल ही में ऐसी परियोजनाएं मिलीं जो स्ट्रूट्स पर चलती हैं और मैं उम्मीद कर रहा हूं कि जेएसपी आगे आ रहा है।मैं अपाचे (httpd) और टॉमकैट को एक साथ कैसे चला सकता हूं?

प्रश्न पूछने के बाद, मुझे उन लोगों के ब्लॉग का नेतृत्व किया जिन्होंने ऐसा करने की कोशिश की। वे ब्लॉग वास्तव में एक कदम से कदम प्रक्रिया नहीं थे कि उन्होंने यह कैसे किया लेकिन को भविष्य में ऐसा कुछ करने की आवश्यकता होने पर संदर्भ की तरह अधिक। कुछ मामलों में, लेखक ने बिल्कुल सही नहीं कहा कि क्या वह दोनों उपर्युक्त सेवाओं को एकसाथ चलाने के प्रयास में सफल रहा था।

दुर्भाग्य से, मैं अपने "निर्देश" का पालन नहीं कर सकता क्योंकि मेरे पास बहुत से PHP प्रोजेक्ट कॉन्फ़िगर किए गए हैं (निर्देशिकाएं, क्लासपाथ इत्यादि ...) को मेरे परीक्षण सर्वर पर चलाने के लिए और मेरे पास समय की लक्जरी नहीं है यदि मैं httpd सर्वर के साथ गड़बड़ करता हूं तो उन्हें सभी को पुन: कॉन्फ़िगर करने के लिए। और ईमानदारी के लिए, मैंने विन्यास फाइलों को अद्यतन करने में संकोच करने के एक ही कारण के लिए उन्हें एक साथ चलाने पर एक भी कदम की कोशिश नहीं की है।

मुझे यकीन नहीं है कि यह जटिलता में जोड़ता है लेकिन मैं पोर्टेबिलिटी उद्देश्यों के लिए xampp (टॉमकैट को xampp एड-ऑन के साथ) दोनों सेवाओं के माध्यम से चला रहा हूं।

मुझे पता है कि जब भी मैं जेएसपी पर काम कर रहा हूं तो मैं अपनी अपाचे सेवा को रोक सकता हूं लेकिन हे कुछ नया करने का प्रयास करने का एक अवसर है और मैं इसे पर्ची नहीं दे सकता। इसके अलावा, यह वास्तव में दोनों सेवाओं के लिए स्टार्टअप पर स्वचालित रूप से चलाने के लिए सुविधाजनक होगा जो वास्तव में मेरी उत्पादकता में वृद्धि करेगा क्योंकि मुझे आवश्यकता होने पर सेवाओं के बीच मैन्युअल रूप से स्विच नहीं करना पड़ेगा।

आशा है कि एसओ पर कोई ऐसा व्यक्ति है जो एक ही नाव पर सवार हो।

संपादित करें: बिलाव संस्करण है 6.0.20 httpd संस्करण 2.2.14

+0

यह यह करने के लिए एक बहुत ही आम बात है, मैं एक छोटे से हैरान आप एक कठिन समय निर्देश खोजने लिया है हूँ। काश मैं याद करता हूं कि मैंने अपने निर्देशों का पालन किया था जब मैंने इसे स्वयं किया था। –

+0

आह हाँ मुझे विश्वास है कि बहुत सी चर्चाएं चल रही हैं लेकिन कंपनी इंटरनेट नीतियां संदेश बोर्डों को अवरुद्ध करती हैं। भगवान का शुक्र है कि एसओ को सार्वजनिक मंच नहीं माना जाता है – lock

उत्तर

7
  • Have बिलाव को mod_proxy स्थापित करने के लिए एक गाइड का पालन करें 80
  • की तुलना में एक बंदरगाह अन्य पर सुनने है this one जैसे टॉमकैट को किसी निश्चित स्थान के अनुरोधों को पुनर्निर्देशित करें।

यदि आप वास्तव में परीक्षण कर रहे हैं, तो दूसरे चरण को छोड़ें और बस टॉमकैट के लिए एक अलग बंदरगाह के माध्यम से सर्वर तक पहुंचें।

संपादित करें: mod_proxy_ajp को स्थापित करने पर http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html भी देखें।

+0

'चरण 1' और' चरण 2 (वैकल्पिक) 'लेबलिंग का सुझाव दें। और समझाते हुए कि एक विकल्प में साइट एकीकृत दिखाई देती है (चरण 1 और 2)। और दूसरा खंडित (चरण 1), ब्राउज़र पता बार में विभिन्न पोर्ट नंबरों के साथ। (मान लीजिए यह बिल्कुल सही है; यह अब तक मेरे चौथे अनुमान की तरह है।) –

1

आपने यह उल्लेख करने के लिए उपेक्षित किया कि आप किस टोमकैट का उपयोग कर रहे हैं और आपने यह भी उल्लेख नहीं किया कि आपने वास्तव में प्रश्न का उत्तर देने के लिए टॉमकैट दस्तावेज़ को देखा है या नहीं।

मैं यहां शुरू करने का सुझाव दूंगा: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html और mod_jk सेट अप करने में देखें।

+0

ध्यान दें कि mod_jk (2?) विधि को अपाचे के आधुनिक संस्करणों पर व्यापक रूप से बहिष्कृत माना जाता है जो mod_proxy_ajp के साथ आता है। – Borealid

+0

httpD और टॉमकैट 6.0.20 के लिए अपाचे 2.2.14 :) प्रश्न को भी संशोधित किया गया है अगर – lock

+1

mod_jk2 को पहले उम्र में गिरा दिया गया था। मैंने जो दस्तावेज लिंक प्रदान किया है वह टॉमकैट वेबसाइट पर सबसे अद्यतित दस्तावेज था ... जो mod_jk1.2.30 (इस वर्ष के फरवरी में जारी किया गया है) .... शायद ही बहिष्कृत है और काम करता है अपाचे के सभी संस्करण । – user334583

0

आप apache/ httpd उपयोग करने के लिए PHP से अनुरोध सेवा करने के लिए और साथ ही किसी अन्य सर्वर भिन्न पोर्ट पर चल रहा है के रूप में कहते हैं कि पोर्ट 8080 पर बिल्ला आप एक "प्रॉक्सी" के रूप में कार्य करने के लिए अपाचे/httpd का उपयोग करें और एक नक्शा कर सकते हैं चाहते हैं यूआरएल जो किसी अन्य सर्वर द्वारा परोसा जाएगा। यह ProxyPassProxyPassReverse कॉन्फ़िगरेशन का उपयोग कर किया जाता है।

उदाहरण के लिए: यदि आप चाहते हैं http://localhost/php पीएचपी द्वारा प्रस्तुत किए जाना और http://localhost/tomcat बिल्ला द्वारा प्रस्तुत किए जाना तो आप httpd.config/apache.config [apache2.config अपाचे के संस्करण के आधार में निम्न परिवर्तन करना होगा आप ] का उपयोग कर रहे हैं:

/usr/sbin/setsebool -P httpd_can_network_connect 1 
:

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
# Uncomment these to proxy FTP or HTTPS 
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
#LoadModule proxy_connect_module modules/mod_proxy_connect.so 

<VirtualHost *:80> 
# Your domain name 
# ServerName Domain_NAME_HERE 

ProxyPreserveHost On 

ProxyPass /tomcat http://localhost:8080/ 
ProxyPassReverse /tomcat http://localhost:8080/ 

# The location of the HTML files, and access control information 
DocumentRoot /var/www 
<Directory /var/www> 
    Options -Indexes 
    Order allow,deny 
    Allow from all 
</Directory> 

</VirtualHost> 

मामले में आप centos पर httpd चल रहे हैं और आप त्रुटि Apache Mod_proxy '[Error] (13)Permission Denied' मिल सकता है, तो this लिंक जो निम्न आदेश पर अमल का कहना है का पालन करें

मैं आपको mod_proxy पढ़ने के लिए अनुशंसा करता हूं।

रेफरी: Redhat mod_proxy configuration

संबंधित मुद्दे