2010-07-07 12 views
15

मैं Ubuntu Hardy 8.04 और nginx 0.7.65 चल रहा हूँ, और जब मैं अपने nginx सर्वर शुरू करने का प्रयास करें:nginx त्रुटि: (99: अनुरोध असाइन नहीं कर सकते पता)

$ sudo /etc/init.d/nginx start 

मैं निम्नलिखित त्रुटि मिलती है:

Starting nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address) 

जहां "आईपी" मेरे आईपी पते के लिए प्लेसहोल्डर है। क्या कोई जानता है कि यह त्रुटि क्यों हो रही है? यह ईसी 2 पर चल रहा है।

मेरे nginx.conf फ़ाइल इस तरह दिखता है:

user www-data www-data; 
worker_processes 4; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    access_log /usr/local/nginx/logs/access.log; 

    sendfile  on; 
    tcp_nopush  on; 
    tcp_nodelay   on; 

    keepalive_timeout 3; 

    gzip on; 
    gzip_comp_level 2; 
    gzip_proxied any; 
    gzip_types text/plain text/css application/x-javascript text/xml application/xml 
    application/xml+rss text/javascript; 

    include /usr/local/nginx/sites-enabled/*; 

} 

और मेरे /usr/local/nginx/sites-enabled/example.com लगता है:

server { 

     listen IP:80; 
     server_name example.com; 
     rewrite ^/(.*) https://example.com/$1 permanent; 

     } 

server { 

     listen IP:443 default ssl; 

     ssl   on; 
     ssl_certificate  /etc/ssl/certs/myssl.crt; 
     ssl_certificate_key /etc/ssl/private/myssl.key; 

     ssl_protocols  SSLv3 TLSv1; 
     ssl_ciphers ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP; 

     server_name example.com; 

     access_log /home/example/example.com/log/access.log; 
     error_log /home/example/example.com/log/error.log; 

     } 

उत्तर

0

वहाँ शेष किया जा सकता है प्रक्रिया/प्रोग्राम जो पोर्ट 80 पर उपयोग/सुन रहा है।

आप netstat -lp का उपयोग करके जांच सकते हैं। उस प्रक्रिया को मारें और nginx शुरू करें।

+0

हम्म सक्षम दुर्भाग्य से पोर्ट 80 को सुनने के लिए कुछ भी नहीं है। –

+0

हम्म .. किसी भी फास्ट-सीजीआई शायद चल रहा है .. –

+0

नहीं ... फास्ट-सीजीआई नहीं देखें ... –

5

config में आईपी पते को हार्ड-कोड से बचने के लिए ऐसा करते हैं:

listen *:80 
0

अमेज़न EC2 और लोचदार आईपी के साथ, सर्वर वास्तव में ये किसी भी सर्वर के साथ के रूप में अपनी आईपी पता नहीं है। तो अपाचे वर्चुअल होस्ट फ़ाइलों में कम से कम आप अपने लोचदार आईपी के बजाय *: 80 डालते हैं: 80

फिर यह ठीक से काम करता है। तो सैद्धांतिक रूप से, nginx के लिए * 80 * करना चाहिए, लेकिन जब आप करते हैं तो आपको [उभरना] मिलता है: बाइंड() से 0.0.0.0:80 विफल (98: पता पहले से उपयोग में है)। अभी तक कोई समाधान नहीं मिला है। ।

39

With Amazon EC2 and elastic IPs, the server doesn't actually know its IP as with most any other server.

तो आपको प्रक्रियाओं को गैर-स्थानीय पते से जुड़ने की अनुमति देने के लिए अपने लिनक्स को बताना होगा। बस /etc/sysctl.conf फ़ाइल में निम्न पंक्ति जोड़ें:

# allow processes to bind to the non-local address 
# (necessary for apache/nginx in Amazon EC2) 
net.ipv4.ip_nonlocal_bind = 1 

और फिर से अपने sysctl.conf को फिर से लोड:

$ sysctl -p /etc/sysctl.conf

जो रिबूट पर ठीक हो जाएगा।

1

रूप kirpit उल्लेख ऊपर आप linux प्रक्रियाओं एक स्थानीय आईपी पते के लिए बाध्य करने की अनुमति चाहता हूँ:

nano /etc/sysctl.conf 

# allow processes to bind to the non-local address 
net.ipv4.ip_nonlocal_bind = 1 

sysctl -p /etc/sysctl.conf 

तो फिर तुम निजी IP पता कि आपके लोचदार आईपी साथ जुड़ा हुआ है जोड़ना चाहते हैं और कि जोड़ने अपनी साइटों config करने के लिए:

nano /etc/nginx/sites-available/example.com 

पुनः लोड nginx:

service nginx reload 

सब कुछ किया!

0

अमेज़ॅन ईसी 2 और लोचदार आईपी के लिए, sysctl.conf काम नहीं करेगा क्योंकि nginx अभी भी eth0 पर नहीं सुनता है।

तो, आप listen *;

0

करने की जरूरत है जो लोगों को भविष्य में इस के साथ काम कर रहा हो सकता है के लिए, मैं सिर्फ मेरे निजी IP एडब्ल्यूएस उदाहरण में देखा और कहा कि करने के लिए बाध्य। मैंने सत्यापित किया कि nginx सार्वजनिक रूप से सुनने में सक्षम था और उसके बाद मेरा पुनःलेखन करने में सक्षम था। मैं नहीं कर सका *: पोर्ट जैसा कि मेरे पास एक आंतरिक सर्वर था, मैं प्रॉक्सी कर रहा था।

0

आप नेटवर्क प्रबंधक का उपयोग कर रहे हैं, तो आप सेवा शुरू करने से पहले नेटवर्क इंटरफेस को बढ़ाने के लिए इंतजार करना होगा:

systemctl NetworkManager-प्रतीक्षा-online.service

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