7

में Nginx कॉन्फ़िगरेशन को अनुकूलित करना मैं रूबी 2.0/प्यूमा उदाहरणों पर रेल अनुप्रयोग चला रहा हूं और nginx कॉन्फ़िगरेशन को कस्टमाइज़ करने की कोशिश कर रहा हूं। मुझे फ़ाइल अपलोड की अनुमति देने के लिए अनुमति अनुरोध आकार को बढ़ाने की आवश्यकता है। मैं कुछ अन्य पोस्ट मुझे नेतृत्व किया है मेरी .ebextensions में जोड़ने के लिए मिल गया है:AWS लोचदार बीनस्टॉक

files: 
    "/etc/nginx/conf.d/proxy.conf" : 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     client_max_body_size 70M; 

अपेक्षा के अनुरूप फ़ाइल बनाने करता है यही कारण है कि, लेकिन यह जब तक मैं मैन्युअल nginx पुनः आरंभ काम करने के लिए प्रतीत नहीं होता। इसके कारण, मैंने nexx को .ebextensions कमांड के साथ पुनरारंभ करने का एक तरीका जानने का प्रयास किया है, लेकिन इसमें कोई सफलता नहीं मिली है। क्या किसी को nginx के साथ nginx को पुनरारंभ करने या इस समस्या को हल करने के लिए बेहतर दृष्टिकोण के बारे में पता है?

उत्तर

8

मुझे पोस्ट-परिनियोजन स्क्रिप्ट चलाने के लिए एक अनियंत्रित तकनीक का उपयोग करके तैनाती के बाद nginx को पुनरारंभ करने का कोई तरीका मिला। मैं अपने .ebextensions को यह कहा:

files: 
    "/opt/elasticbeanstalk/hooks/appdeploy/post/03_restart_nginx.sh": 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     #!/usr/bin/env bash 
     service nginx restart 
1

यह मेरी कॉन्फ़िगरेशन है और मेरे लिए काम किया है। आपको इसे http ब्लॉक के अंदर शामिल करना होगा।

files: 
    "/etc/nginx/conf.d/proxy.conf" : 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     http { 
      client_max_body_size 20M; 
     } 
+2

जब मैं उस, मैं मिलता है "nginx: [Emerg]" http जब मैन्युअल nginx को पुनः आरंभ करने की कोशिश कर "निर्देश यहाँ /etc/nginx/conf.d/proxy.conf:1 में अनुमति नहीं है"। शायद हम nginx के विभिन्न संस्करणों पर हैं। वैसे भी, उपरोक्त मेरी कॉन्फ़िगरेशन मेरे लिए ठीक काम करता है, लेकिन केवल सर्वर में ssh के बाद और मैन्युअल रूप से nginx को पुनरारंभ करें। मूल रूप से, समस्या यह है कि तैनाती के बाद नई कॉन्फ़िगरेशन पर nginx नहीं उठा रहा है। – Graham

4

nginx config को फिर से लोड करने के लिए, आप http://www.infoq.com/news/2012/11/elastic-beanstalk-config-files से container_commands

उपयोग कर सकते हैं:

container_commands कुंजी आप अपने कंटेनर के लिए आदेश पर अमल करने के लिए अनुमति देता है। आवेदन के बाद वे चलाए जाते हैं और वेब सर्वर स्थापित किए जाते हैं और एप्लिकेशन निकाला गया है, लेकिन एप्लिकेशन को तैनात करने से पहले। कंटेनर_कॉमैंड नाम से लेक्सिकोोग्राफिक क्रम में संसाधित होते हैं।

container_commands: 
    01_reload_nginx: 
    command: "service nginx reload" 
0

मैं इस तरह से काम कर रहा समझ में आ गया। commands (और container_commands नहीं) के बाद nginx को पुनरारंभ या पुनः लोड करने की आवश्यकता नहीं है, एप्लिकेशन को तैनात करने से पहले चलाता है।

commands: 
    01-get-nginx-conf-file: 
    command: "aws s3 cp s3://somepath/nginx.conf /home/ec2-user" 
    02-replace-default-nginx-config: 
    command: "cp /home/ec2-user/nginx.conf /etc/nginx/nginx.conf" 
संबंधित मुद्दे