मैं एक उबंटू डॉकर कंटेनर स्थापित करने की कोशिश कर रहा हूं जो पोर्ट 9000 पर एक नोड.जेएस HTTP ऐप चलाता है। उत्पादन वातावरण के सेटअप की नकल करने के लिए, मैं अपाचे को भी चलाने की इच्छा रखूंगा कंटेनर के भीतर एक साधारण रिवर्स प्रॉक्सी सर्वर जो कि इस ऐप से आगे, पोर्ट 80 (जिसे मैं बड़ी बुरी दुनिया में उजागर करता हूं) से कहता हूं।डॉकर कंटेनर में अपाचे रिवर्स प्रॉक्सी के लिए न्यूनतम कॉन्फ़िगरेशन
मैं नोड.जेएस ऐप कंटेनर ठीक स्थापित करने में सक्षम हूं और मैं अपने Dockerfile
के भीतर अपाचे स्थापित और सेटअप कर सकता हूं; लेकिन मैं एक रिवर्स प्रॉक्सी स्थापित करने के लिए पूरी तरह से नया हूं, इसलिए अपाचे निश्चित रूप से शुरू होता है, यह प्रॉक्सी नहीं करता है।
मेरे Dockerfile
लग रहा है कि:
# DOCKER-VERSION 1.3.0
FROM ubuntu:12.04
# Install and set up Apache as a reverse proxy
RUN apt-get -y install apache2 libapache2-mod-proxy-html
COPY apache2.conf /etc/apache2/app.conf
RUN cat /etc/apache2/app.conf >> /etc/apache2/apache2.conf
RUN service apache2 start
# Install and set up Node.js and bundle app
# ...This works...
EXPOSE 80
CMD ["./start-app.sh"]
... जहां apache2.conf
मैं /etc/apache2/apache2.conf
को जोड़कर कर रहा हूँ है:
ServerName localhost
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /http://localhost:9000/
ProxyPassReverse/http://localhost:9000/
मैं निम्न आदेश का उपयोग कर इस छवि को चला रहा हूँ:
docker run -p 80:80 -p 81:9000 -d IMAGE
मुझे उम्मीद है किपर जा रहा है(यानी, रूट) अपाचे द्वारा उठाया जाएगा और कंटेनर में localhost:9000
(यानी, मेरा ऐप) पर अग्रेषित किया जाएगा। (यदि मैं http://$DOCKER_HOST:81
पर जाता हूं, तो मैं सीधे ऐप पर जाता हूं; यह साबित करने के लिए कि यह ऊपर और चल रहा है। यह काम करता है।) मुझे संदेह है कि समस्या डॉकर के साथ बिल्कुल नहीं है, लेकिन अपाचे कॉन्फ़िगरेशन है।
क्या आप 9 000 के बजाय पोर्ट 80 पर अपने वेब सर्वर को उजागर करने के एकमात्र उद्देश्य के लिए अपाचे रिवर्स प्रॉक्सी का उपयोग कर रहे हैं या इसका कोई और उद्देश्य होगा? – Thomasleveil
बिल्कुल। उत्पादन मशीन पर, अपाचे अन्य, असंबंधित सामान कर रहा है; मैं बस अपने कंटेनर में रिवर्स प्रॉक्सी परत डाल रहा हूं ताकि यह उत्पादन में सेटअप से मेल खा सके। – Xophmeister
Pls आपके डॉकर कंटेनर – Thomasleveil