nginx - nginx: [emerg] bind () से [::]: 80 विफल (98: पता पहले से उपयोग में)


248

अचानक मुझे नीचे nginx त्रुटि मिल रही है

 * Restarting nginx
 * Stopping nginx nginx
   ...done.
 * Starting nginx nginx
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
   ...done.
   ...done.

अगर मैं चला

lsof -i :80 or sudo fuser -k 80/tcp 

मुझे कुछ नहीं मिलता। पोर्ट 80 पर कुछ भी नहीं

फिर मैं नीचे चलाता हूं:

sudo netstat -pan | grep ":80"
tcp        0      0 127.0.0.1:8070          0.0.0.0:*               LISTEN      15056/uwsgi     
tcp        0      0 10.170.35.97:39567      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39564      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39584      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39566      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39571      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39580      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39562      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39582      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39586      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39575      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39579      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39560      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39587      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39591      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39589      10.158.58.13:8080       TIME_WAIT   - 

मैं स्तब्ध हूं। मैं यह कैसे डिबग करूं?

मैं पोर्ट 8070 पर एक प्रॉक्सी पास के साथ uwsgi का उपयोग कर रहा हूं। uwsgi चल रहा है। नगनेक्स नहीं है। मैं ubuntu 12.4 का उपयोग कर रहा हूं

नीचे मेरे nginx conf फ़ाइल के प्रासंगिक भाग हैं

upstream uwsgi_frontend {
          server 127.0.0.1:8070;
        }
server {
listen 80;
        server_name 127.0.0.1;
        location = /favicon.ico {
                  log_not_found off;
                }



                location / {
                       include uwsgi_params;
                       uwsgi_buffering off;

                       uwsgi_pass 127.0.0.1:8070;
                 }
        }

यहां बताया गया है कि मैं ubuntu 12.04 पर nginx कैसे स्थापित करता हूं

nginx=stable;add-apt-repository ppa:nginx/$nginx;
apt-get update
apt get install nginx-full

19
मुझे वह मुद्दा मिला जो पहले कभी नहीं था। मुझे / etc / nginx / sites-available / default को हटाना था। फिर काम हुआ। मेरा विश्वास / etc / nginx / डिफ़ॉल्ट में था
ताम्पा

मैं Nginx + वार्निश चला रहा था और यह त्रुटि थी। समाधान दोनों को शीर्ष पर रोक दिया गया था, फिर पहले नग्नेक्स और फिर वार्निश शुरू करें।
बेन

आप नामित सेवा को रोकने का प्रयास कर सकते हैं।
आमल

क्या आपने साइट-सक्षम से अपना डिफ़ॉल्ट हटा दिया था?
वोल्फपैक'08

मैं यहाँ सभी समाधान की कोशिश की। उपयोग किए गए सभी बंदरगाहों की जाँच की (इसका उपयोग NGINX द्वारा ही किया जा रहा था) इसलिए मैंने बंदरगाह को मार दिया और इसे पुनः आरंभ किया। एक जादू की तरह काम किया।
गैविन

जवाबों:


202

[::]:80 एक ipv6 पता है।

यह त्रुटि हो सकती है यदि आपके पास एक nginx कॉन्फ़िगरेशन है जो पोर्ट 80 पर और पोर्ट पर भी सुन रहा है [::]:80

मेरी डिफ़ॉल्ट साइट-उपलब्ध फ़ाइल में निम्नलिखित थे:

listen 80;
listen [::]:80 default_server;

आप को जोड़कर इसे ठीक कर सकते ipv6only=onकरने के लिए [::]:80इस तरह:

listen 80;
listen [::]:80 ipv6only=on default_server;

अधिक जानकारी के लिए देखें:

http://forum.linode.com/viewtopic.php?t=8580

http://wiki.nginx.org/HttpCoreModule#listen


11
तुम भी सिर्फ 80 को सुनने के द्वारा इसे ठीक कर सकते हैं; क्योंकि सुनो [::]: IPv4 और IPv6 दोनों के लिए 80 सूची। हालांकि बाहर देखें क्योंकि कुछ सिस्टम (जैसे FreeBSD) IPv4 और IPv6 सॉकेट को अलग करते हैं और फिर यह काम नहीं करेगा, लेकिन लिनक्स के लिए यह ठीक होना चाहिए। wiki.nginx.org/HttpCoreModule#listen
gitaarik

4
इस में खुदाई करने और /etc/nginx/sites-available/defaultउपरोक्त त्रुटि के साथ हटाने में मदद करने के लिए स्पष्टीकरण प्रदान करने के लिए धन्यवाद ।
ऑलिवर

1
यहां तक ​​कि जब मैं ipv6 लाइन पर टिप्पणी करता हूं, तब भी मुझे वही त्रुटि मिलती है जब मैं कोशिश करता हूं sudo service nginx restart। जब मैं करता हूं netstat -tulpn |grep 80, मुझे केवल एक बार nginx प्रक्रिया (0.0.0.0:80) मिलती है। किसी भी विचार क्यों यह पुनः आरंभ नहीं होगा?
रोमन

मैंने दूसरी बात जो @rednaw ने कही है, लेकिन सुनने को हटाने के बजाय, आप बस इसे टिप्पणी कर सकते हैं
d4nyll

ipv6only=onसमस्या को निर्धारित करना , लेकिन nginx को वास्तव में यह पता लगाना चाहिए कि यह एक ही इंटरफ़ेस से जुड़ने की कोशिश कर रहा है: दो बार पोर्ट।
डैनस्केलस्कु

246

मैंने इसे चालू करके तय किया sudo apachectl stop- मुड़ता है अपाचे पृष्ठभूमि में चल रहा था और नेगेंक्स को वांछित बंदरगाह पर शुरू करने से रोका गया था।

उबंटू रन पर sudo /etc/init.d/apache2 stop


8
sudo /etc/init.d/apache2 stopUbuntu 14.04 पर अपाचे को रोकने के लिए उपयोग करें
फूटनिको

3
इसका कारण यह है कि आपके पास एक ही पोर्ट को सुनने वाले दो वेब सर्वर नहीं हो सकते हैं। एक चुनें, और यदि आवश्यक हो, तो प्रॉक्सी। जैसे nginx का उपयोग करें, लेकिन कुछ अनुरोधों के लिए (जैसे phpफ़ाइलों के लिए), अपाचे पोर्ट के लिए प्रॉक्सी।
d4nyll

यहाँ एक ताजा डेबियन 9 स्थापित करें।
जिरारियम

धन्यवाद। लेकिन किसी भी विचार को अचानक क्यों शुरू किया? मैंने एक सप्ताह के लिए सर्वर को नहीं छुआ, लेकिन यह कल रात शुरू हुआ था।
अजय सिंह

1
आपके समाधान के लिए धन्यवाद। यह मेरे लिए काम करता है, मैं Google क्लाउड प्लेटफ़ॉर्म का उपयोग करता हूं
16

93

मेरा मामला अलग है, मुझे इसे फिर से शुरू करने के लिए नेग्नेक्स को मारना पड़ा।

के बजाय

sudo systemctl restart nginx

मुझे उपयोग करना था:

sudo pkill -f nginx & wait $!
sudo systemctl start nginx

1
मैं 404 नहीं मिला, और मैंने आपके सुझाव का उपयोग किया, अब मैंने अपनी समस्या को ठीक कर लिया। धन्यवाद।
बे

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

38

मुझे वह मुद्दा मिला जो पहले कभी नहीं था।

मुझे बस हटाना था /etc/nginx/sites-available/default। फिर काम हुआ।

मेरा आत्मविश्वास था /etc/nginx/default


2
+1 यह समाधान मेरे लिए काम करता है, लेकिन फिर मैंने सोचा कि डिफ़ॉल्ट रूप से कुछ ऐसा होना चाहिए जो वास्तव में समस्या पैदा कर रहा है, इसलिए मैंने थोड़ा गहरा खोदा और अधिक जानकारी के साथ एक उत्तर प्रदान किया।
नाथन

11
मैं तर्क दूंगा कि डिफॉल्ट साइट कॉन्फ़िगरेशन टेम्प्लेट को हटाना सबसे अच्छा समाधान नहीं है - listen 80;उसी समान टेम्प्लेट में मौजूद लाइन पर टिप्पणी करना समस्या को हल करता है और सही ढंग से ऐसा करता है। आपकी चाल काम करती है, लेकिन ऐसा नहीं है कि मैं आपके प्रश्न के पाठकों को क्या करूंगा। इसलिए मेरा सुझाव है कि आप सही उत्तर के रूप में @ नाथन के उत्तर का चयन करें।
ओलिवर

4
मैं चलाने के बाद एक ही समस्या थी apt-get dist-upgradeजो nginx पैकेज है, जिसमें एक लिंक बनाया है उन्नत बनाया, /etc/nginx/sites-enabledकरने के लिए /etc/nginx/sites-available/default। nginx इस डिफ़ॉल्ट कॉन्फिगरेशन को लोड करने की कोशिश कर रहा था, जो कि IPv6 पर 80 पोर्ट को सुनता है, फिर यह मेरे रीड माय कॉम्प्लेक्ट को लोड भी कर रहा था। उस सिम्लिंक को हटाने से समस्या ठीक हो गई।
डैन डस्केल्सस्कू

15
आप की जरूरत नहीं है DELETE के लिए करते हैं /etc/nginx/sites-available/default -, केवल इसके प्रतीकात्मक कड़ी को दूरsudo rm /etc/nginx/sites-enabled/default
d4nyll

nginxपोर्ट 8080 और varnishपोर्ट 80 पर चलने की कोशिश करते समय मुझे इस मुद्दे का अनुभव हुआ और इस उत्तर के समान, मुझे nginxडिफ़ॉल्ट 80 पर अभी भी पोर्ट 80 पर सुनने पर भी एक डिफ़ॉल्ट कॉन्फ़िगरेशन में समस्या मिली, यह sites-availableसब पोर्ट 8080 पर सुना गया। यह इस पर स्थित था/etc/nginx/conf.d/default
zigojojo

24

मुझे भी वही त्रुटि मिल रही थी।

nginx: [emerg] bind () से [::]: 80 विफल (98: उपयोग में पहले से पता)

और जब मैंने ब्राउज़र में लोकलहोस्ट टाइप किया, तब मैं हो रहा था

यह काम करता हैं!

यह सर्वर के लिए डिफाल्ट वेब पेज है।

वेब सर्वर सॉफ्टवेयर चल रहा है लेकिन अभी तक कोई सामग्री नहीं जोड़ी गई है। nginx स्वागत पृष्ठ के बजाय, apache2 उसी पोर्ट पर चल रहा है,

  1. apache2 लगता है ports.conf फ़ाइल

    sudo /etc/apache2/ports.conf
    
  2. पोर्ट को फिर से बदलें 80, मैं इसे बनाता हूं70

  3. फ़ाइल सहेजें

  4. अपने सिस्टम को पुनरारंभ करें

यह आपके लिए भी काम करेगा, यदि आप ब्राउज़र में लोकलहोस्ट टाइप करते हैं, तो आपको nginx वेलकम पेज मिलेगा


1
आप बस एक ही समय में Apache2 और nginx दोनों को चलाना नहीं चाहेंगे। मैंने पाया कि अपाचे की स्थापना सेवा शुरू करती है। तो, मैंने "sudo /etc/init.d/apache2 stop" जारी किया, और फिर नगीनक्स को सामान्य रूप से शुरू करने में सक्षम था। यह आपको आपके सिस्टम को रिबूट करने से भी बचाता है।
क्रिस वेस्टिन

1
आप सही हैं कि / etc / nginx / साइट्स-सक्षम / डिफ़ॉल्ट सिम्पल लिंक को हटाने से यह दो पोर्ट पर सुनने से रोकता है। मुझे लगता है कि यह वास्तव में थोड़ा परेशान करने वाला है कि nginx पर प्रत्येक ट्यूटोरियल हर किसी को "डिफ़ॉल्ट" लिंक को हटाने का सुझाव देकर शुरू करता है लेकिन यह एक अलग विषय है जो मुझे लगता है।
एसिपिपुल

@IgorGanapolsky एक अलग पोर्ट पर अपाचे को स्विच करता है?
मेनाशेह

10

इस कमांड को करने का प्रयास करें

sudo fuser -k 443/tcp
service nginx restart

8

मेरा मुद्दा यह था कि मुझे सुनने के निर्देशों को ओवरलैप करना था। मैं चलाकर ओवरलैपिंग निर्देशों का पता लगाने में कामयाब रहा

grep -r listen /etc/nginx/*

एक ही पोर्ट पर दो फाइलें सुन रही थीं:

/etc/nginx/conf.d/default.conf:           listen 80;  
/etc/nginx/sites-enabled/default.conf:    listen 80;

3
यह चीजों को जांचने का एक बहुत साफ तरीका है: grep -r listen /etc/nginx/*साझा करने के लिए धन्यवाद!
न्यूस्कूलर

6

मुझे Letencrypt (Certbot) और nginx में एक ही समस्या थी,

रेफरी: https://github.com/certbot/certbot/issues/5486

इस त्रुटि का अभी तक समाधान नहीं हुआ है

इसलिए, नवीनीकरण के लिए एक क्रोन को बदल दिया (नवीनीकरण के बाद फिर से लोड करना) (प्रमाण पत्र से सुझाव का उपयोग करके)

-- in /etc/cron.d/certbot
from
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew 
to
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --pre-hook "service nginx stop" --post-hook "service nginx start"

लॉग (छोटा):

-- in /var/log/syslog
Jun 10 00:14:25 localhost systemd[1]: Starting Certbot...
Jun 10 00:14:38 localhost certbot[22222]: nginx: [error] open() "/run/nginx.pid$
Jun 10 00:14:41 localhost certbot[22222]: Hook command "nginx" returned error c$
Jun 10 00:14:41 localhost certbot[22222]: Error output from nginx:
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] still could not bind()
Jun 10 00:14:41 localhost systemd[1]: Started Certbot.


-- in /var/log/nginx/error.log
2018/06/10 00:14:27 [notice] 22233#22233: signal process started
2018/06/10 00:14:31 [notice] 22237#22237: signal process started
2018/06/10 00:14:33 [notice] 22240#22240: signal process started
2018/06/10 00:14:34 [notice] 22245#22245: signal process started
2018/06/10 00:14:38 [notice] 22255#22255: signal process started
2018/06/10 00:14:38 [error] 22255#22255: open() "/run/nginx.pid" failed (2: No $
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: still could not bind()

1
सुपर यादृच्छिक, लेकिन यह मेरा मुद्दा था मुझे विश्वास था। इसे पोस्ट करने के लिए धन्यवाद। मेरी त्रुटि प्रकट होने के कारण प्रतीत होती है कि एक पुरानी डोमेन प्रविष्टि के कारण इसे नवीनीकृत करने की कोशिश की जा रही थी, लेकिन मैं डोमेन को नियंत्रित नहीं कर पाया क्योंकि मैं इसे नियंत्रित नहीं कर सकता था।
w--

मुझे लगता है कि यह शायद मेरा मुद्दा भी है। लेकिन मुझे इंतज़ार करना होगा
ऑस्कर झोउ 1989

2

पहले बदलाव अपाचे सुनो पोर्ट 80/8080 अपाचे में /etc/apache2/ports.conf शामिल हैं

Listen 1.2.3.4:80 to 1.2.3.4:8080
sudo service apache2 restart 

या

sudo service httpd restart    // in case of centos

फिर nginx को रिवर्स प्रॉक्सी सर्वर के रूप में जोड़ें जो अपाचे पोर्ट को सुनेगा

server {
 listen   1.2.3.4:80;
 server_name  some.com;

 access_log  /var/log/nginx/something-access.log;

 location / {
  proxy_pass http://localhost:8080;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }


location ~* ^.+\.(jpg|js|jpeg|png)$ {
   root /usr/share/nginx/html/;
}

location /404.html {
  root /usr/share/nginx/html/40x.html;
}

error_page 404 /404.html;
    location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
    location = /50x.html {
}

# put code for static content like js/css/images/fonts
}

परिवर्तन के बाद nginx सर्वर को पुनरारंभ करें

sudo service nginx restart

अब सभी ट्रैफिक को nginx सर्वर द्वारा संभाला जाएगा और अपाचे को सभी डायनेमिक अनुरोध भेजेंगे और nginx सर्वर द्वारा स्टेटिक कॉन को परोसा जाएगा।

कैश जैसे अग्रिम कॉन्फ़िगरेशन के लिए:

https://www.linode.com/docs/web-servers/nginx/slightly-more-advanced-configurations-for-nginx/#basic-nginx-caching


1

मैं इसी तरह की समस्या से मिला। लॉग नीचे की तरह है

2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: still could not bind()
2018/10/31 12:54:23 [alert] 127997#127997: unlink() "/run/nginx.pid" failed (2: No such file or directory)
2018/10/31 22:40:48 [info] 36948#36948: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:68
2018/10/31 22:50:40 [emerg] 37638#37638: duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/default:18
2018/10/31 22:51:33 [info] 37787#37787: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:68

अंतिम [emerg]दिखाता है कि duplicate listen options for [::]:80जिसका अर्थ है कि एक से अधिक nginx ब्लॉक फ़ाइल हैं[::]:80

मेरा समाधान एक को दूर करना है [::]:80 सेटिंग में से है

PS शायद आपके पास डिफ़ॉल्ट ब्लॉक फ़ाइल है। मेरी सलाह है कि इस फाइल को पोर्ट 80 के लिए डिफॉल्ट सर्वर के रूप में रखें और [::]:80अन्य ब्लॉक फाइलों से हटा दें


1

मैं एक डॉकटर कंटेनर पर नग्नेक्स और गुनिकॉर्न को एक साथ चलाने के लिए पर्यवेक्षक का उपयोग करता हूं।

यह पर्यवेक्षक के लिए उपयोग किया गया कॉन्फ़िगरेशन था:

[supervisord]
nodaemon=true

[program:gunicorn]
command = /project/start.sh
user = www-data


[program:nginx]
command=/usr/sbin/nginx

समस्या यह थी कि मैंने Ngnix कैसे लॉन्च किया: डिफ़ॉल्ट रूप से यह अग्रभूमि पर चलता है। यह नगीनेक्स के एक और उदाहरण को चलाने के लिए पर्यवेक्षण की निगरानी करता है।

-g 'daemon off;'कमांड लाइन में जोड़कर , नेग्नेक्स अग्रभूमि में रहे, पर्यवेक्षक ने एक और उदाहरण चलाने की कोशिश करना बंद कर दिया।


1

मेरे मामले में, Apache, Apache2 या Nginx में से कोई एक सेवा पहले से ही चल रही थी और उसके कारण मैं दूसरी सेवा शुरू नहीं कर पा रहा था।


0

मेरे पास अपनी साइटों-एविलेबल डायर में विभिन्न NGINX कॉन्फिग फाइलों से कई * .save फाइलें (नैनो से आपातकालीन डंप) थीं। एक बार जब मैंने इन .save फ़ाइलों को हटा दिया, तो NGINX ने पुनः आरंभ किया। मैंने माना कि ये हानिरहित थे क्योंकि कोई संगत सिम्बलिंक नहीं थे, लेकिन मुझे लगता है कि मैं गलत था।


0

@ Lfender6445 और @SAURABH उत्तरों का अनुसरण करने के लिए -

मेरी समस्या यह भी थी कि वेग्रैंट 2.2.2 में अपग्रेड करने के बाद अपाचे 2 वेब सर्वर के रूप में चल रहा था जब अतिथि बूट करता था। अतीत में मेरे पास केवल वेब सर्वर के रूप में nginx था।

जब भी अतिथि बॉक्स बूट करता है, अपाचे 2 को शुरू करने से अक्षम करने के लिए बॉक्स में आवारा एसएचएस और निम्नलिखित कमांड चलाएं:

sudo update-rc.d -f apache2 remove

एसआईटी से बाहर निकलें, योनि हॉल्ट, योनि अप। समस्या सुलझ गयी।


0

यदि उपरोक्त समाधानों में से कोई भी प्रयास करने के बाद समस्या बनी रहती है, तो अपने सर्वर को एक बार पुनरारंभ करें। यह मेरे लिए काम :)


हाँ यह होगा। लेकिन नग्नेक्स प्रक्रिया को मारना और फिर बस नगनेक्स को फिर से शुरू करना भी काम करता है। इसका जवाब @datdinhquoc ने दिया है।
खोम नाज़िद

0

मेरे मामले में अपराधी एक सर्वर-ब्लॉक के रूप में निकला, जिसमें निहित था:

        listen  127.0.0.1:80;
        listen  [::1]:80 ipv6only=on;
        server_name  localhost;

लिनक्स पर, एक विशिष्ट आईपी (जैसे [::1]:80) पर सुनने वाला सॉकेट एक ही पोर्ट पर किसी भी सॉकेट को सुनने के साथ टकराता है लेकिन कोई भी आईपी (यानी [::]:80)। आम तौर पर नग्नेक्स पारदर्शी रूप से इस दृश्य के पीछे एक एकल सॉकेट का उपयोग करके इस समस्या से निपटेंगे। हालांकि, स्पष्ट रूप से निर्दिष्ट ipv6only(या कुछ अन्य विकल्प) सुनो निर्देश बलों पर nginx को (इसके लिए) इसके लिए एक अलग सॉकेट बनाने का प्रयास करें, इस प्रकार परिणामस्वरूप।Address already in use त्रुटि होती है।

चूंकि ipv6only=onडिफ़ॉल्ट वैसे भी (1.3.4 के बाद से) इस निर्देश से उस विकल्प को हटाने के लिए बस फिक्स था, और यह सुनिश्चित करना कि ipv6onlyमेरे कॉन्फ़िगरेशन में कहीं और उपयोग नहीं किया गया था।


0

मेरे पास एक ही मुद्दा है, लेकिन मुझे लगता है कि पोर्ट 80 न्यग्नेक्स द्वारा सुनी गई:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      9730/nginx 

लेकिन जब मैं इसे पुनः आरंभ करने का प्रयास करता हूं, तो मुझे त्रुटि होती है:

    service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()

मेरा मुद्दा कॉन्फिग फाइल में था, मैं पीआईडी ​​फाइल सेट कर रहा हूं, और लगता है कि सिस्टम कैंट इसे ठीक से नहीं पकड़ सकता:

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

जब मैंने इसे हटाया, तो यह काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.