2013-06-22 5 views
12

मुझे नहीं पता कि unicorn.rb फ़ाइल में क्या गलत है। my unicorn.rb configयूनिकॉर्न शुरू नहीं कर सकता, मास्टर शुरू करने में विफल रहा, विवरण के लिए stderr लॉग की जांच करें

APP_PATH = "/var/www/demo" 
working_directory APP_PATH 

stderr_path APP_PATH + "/log/unicorn.stderr.log" 
stdout_path APP_PATH + "/log/unicorn.stderr.log" 

pid APP_PATH + "/tmp/pid/unicorn.pid" 

रनिंग nginx सफल है।

sudo servier nginx start 
sudo unicorn -c /var/www/demo/config/unicorn.rb -D 
+1

/var/www/demo/log/unicorn.stderr.log पर stderr लॉग क्या कहता है? बीटीडब्ल्यू, आप एक ही फाइल में stdout और stderr लॉगिंग कर रहे हैं। –

+0

ऐसी कोई फ़ाइल या निर्देशिका नहीं - /path/to/.unicorn.sock (Errno :: ENOENT) –

उत्तर

6

सॉकेट "फ़ाइल" है जो उनके बीच सभी संचार के लिए एक चैनल के रूप में nginx और यूनिकर्न उपयोग है। आपने इसे कहां परिभाषित किया है?

listen APP_PATH + "/tmp/pid/.unicorn.sock 

फिर, अपने nginx.conf में, तो आप इस सॉकेट के बारे में nginx बताने के लिए की जरूरत है, उदाहरण के लिए::

upstream unicorn { 
    server unix:/var/www/demo/tmp/pid/.unicorn.sock fail_timeout=0; 
} 

location/{ 
    root /var/www/demo/current/public ; 
    try_files $uri @unicorns; 
} 

location @unicorns { 
    proxy_pass http://unicorn; 
} 

इस कॉन्फ़िग फ़ाइल में हमारे गेंडा कॉन्फ़िगरेशन में, हम आम तौर पर इस तरह की एक पंक्ति है , पहला खंड परिभाषित करता है कि कैसे nginx यूनिकॉर्न तक पहुंच सकता है। दूसरा वास्तव में एक अमूर्त स्थान "@unicorns" के अनुरोधों को रूट करता है, जो बदले में, अंतिम खंड में परिभाषित किया जाता है। यदि आपके पास अधिक जटिल nginx रूटिंग चल रहा है, तो इस तरह आप @unicorns shorthand का पुन: उपयोग कर सकते हैं।

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