Nginx - nginx: [emerg] bind () [::]: 80 başarısız oldu (98: adres zaten kullanılıyor)

Birdenbire aşağıdaki nginx hatasını alıyorum

  * 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. 

Eğer başlattıysam

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

Hiçbir şey alamadım. 80 numaralı limanda hiçbir şey yok

Sonra aşağıdakileri çalıştırın:

 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 - 

Çıkmazdayım.

Hata ayıklama nasıl yapılır?

İle uwsgi kullanıyorum

proxy sunucusu 8070 numaralı bağlantı noktasını iletir. uwsgi çalışıyor. Nginx değil. Ubuntu 12.4 kullanıyorum

Aşağıda nginx config dosyasının ilgili bölümleri bulunmaktadır.

 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; } } 

İşte ben 12.04 ubuntu nginx nasıl yüklerim

 nginx=stable;add-apt-repository ppa:nginx/$nginx; apt-get update apt get install nginx-full 
176
20 февр. Tampa 20 Şubat'ta ayarlandı 2013-02-20 08:19 '13, 08:19 2013-02-20 08:19
@ 14 cevaplar

[::]:80 - ipv6 adresi.

Bu hata, 80 numaralı bağlantı noktasını ve ayrıca [::]:80 numaralı bağlantı noktasını dinleyen bir nginx yapılandırmanız varsa ortaya çıkabilir.

Erişilebilir varsayılan dosyamda aşağıdakiler vardı:

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

Bunu, ipv6only=on [::]:80 ekleyerek aşağıdaki gibi düzeltebilirsiniz:

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

Daha fazla bilgi için bkz.

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

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

178
27 февр. Cevap 27 Şubat'ta Nathan tarafından verildi . 2013-02-27 02:52 '13, 02:52 2013-02-27 02:52

Bunu sudo apachectl stop çalıştırarak düzelttim - sudo apachectl stop arka planda çalıştığı ve nginx'in doğru portta çalışmasını engellediği ortaya çıktı.

border=0

sudo /etc/init.d/apache2 stop modunda, sudo /etc/init.d/apache2 stop

168
28 мая '13 в 20:27 2013-05-28 20:27 Cevap lfender6445 tarafından 28 Mayıs 13, 20:27 2013-05-28 20:27

Hiç sahip olmadığım bir problem buldum.

Sadece /etc/nginx/sites-available/default kaldırmak zorunda kaldım. Sonra işe yaradı.

Benim conf /etc/nginx/default .

31
24 февр. Cevap 24 Şubat Tampa verilir. 2013-02-24 15:47 '13, 15:47 2013-02-24 15:47

Ben de aynı hatayı aldım. nginx: [emerg] bind (), [::]: 80 başarısız oldu (98: adres zaten kullanımda) ve tarayıcıda localhost yazdığımda, ardından aldım

İşe yarıyor!

Bu, bu sunucunun varsayılan web sayfasıdır.

Web sunucusu yazılımı çalışıyor, ancak içerik henüz eklenmedi. açılış sayfası yerine, nginx apache2 aynı portta çalışır,

  • apache2 ports.conf dosyasını bulun

    sudo / etc / apache2 / ports.conf

  • diğer portu 80'e değiştir, 70 gibi yapacağım

  • dosyayı kaydet

  • sistemi yeniden başlat

tarayıcıda localhost yazarsanız, nginx hoşgeldiniz sayfasını alacaksınız

20
29 мая '13 в 8:37 2013-05-29 08:37 Cevap SAURABH tarafından 29 Mayıs 13: 08: 37'de , 2013-05-29 08:37

Benim işim farklı, yeniden başlatmak için Nginx'i öldürmek zorunda kaldım.

Yerine

 sudo systemctl restart nginx 

Kullanmam gerekiyordu:

 sudo pkill -f nginx sudo systemctl start nginx 
12
03 авг. Cevap datdinhquoc 03 ağustosta verildi . 2018-08-03 06:22 '18, 06:22 2018-08-03 06:22

Letencrypt (certbot) ve nginx'te de aynı problem vardı.

ref: https://github.com/certbot/certbot/issues/5486

bu hatanın henüz bir çözümü yok

bu nedenle, güncelleme için cron'u değiştirdi ( güncellemeden sonra yeniden başlatma ekleyerek ) (certbot teklifini kullanarak)

 -- 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" 

dergiler (kısa):

 -- 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() 
4
11 июня '18 в 18:12 2018-06-11 18:12 Cevap 11 Haziran 18'de Wagner Pereira tarafından 18 : 12'de verildi. 2018-06-11 18:12

bu komutu çalıştırmayı deneyin

 sudo fuser -k 443/tcp service nginx restart 
3
29 марта '18 в 7:49 2018-03-29 07:49 Cevap Jack 29 March '18 'de 7:49' de verilir 2018-03-29 07:49

Benzer bir problemle karşılaştım. dergi şöyle görünüyor:

 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 

Son [emerg] , duplicate listen options for [::]:80 , yani duplicate listen options for [::]:80 içeren birden fazla nginx blok dosyası olduğu anlamına gelir.

Benim çözümüm ayarlardan birini silmek. [::]:80

PS muhtemelen varsayılan bir kilit dosyanız var. Tavsiyem bu dosyayı port 80 için varsayılan sunucu olarak kaydetmektir. [::]:80 'i diğer blok dosyalarından silmeniz gerekir.

1
01 нояб. Cevap Oscar Zhou1989 Kasım 01'de verilmiştir. 2018-11-01 02:34 '18, 02:34, 2018-11-01 02:34

Yukarıdaki çözümlerden herhangi birini denedikten sonra sorun devam ederse, sunucuyu bir kez yeniden başlatın. Benim için çalıştı :)

1
05 дек. Cevap Deejay 05 Dec tarafından verildi. 2018-12-05 01:45 '18, 1:45 2018-12-05 01:45

Dizimimdeki farklı NGINX yapılandırma dosyalarından birkaç tane * .save dosyası (nanodan gelen çökme yığınları) vardı - avilable. Bu .save dosyalarını sildiğim anda NGINX yeniden başlatıldı. Karşılık gelen sembolik bağlar olmadığı için zararsız olduklarını varsaydım, ama yanıldığımı düşünüyorum.

0
15 янв. Cevap 15 Ocak'ta Allen tarafından verildi . 2017-01-15 00:21 '17, 0:21 2017-01-15 00:21

Benim durumumda Apache, Apache2 veya Nginx servislerinden biri zaten çalışıyordu ve bu yüzden başka bir servis başlatamadım.

0
22 дек. Cevap Rishikesh Chandra tarafından 22 Aralık'ta verildi . 2018-12-22 12:31 '18 12:31, 2018-12-22 12:31

İlk apache değişikliği /etc/apache2/ports.conf içindeki 80 ila 8080 apache portunu dinler.

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

veya

 sudo service httpd restart // in case of centos 

daha sonra nginx'i Apache portunda dinleyecek olan proxy sunucusu olarak ekleyin

 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 sunucusunu yeniden başlattıktan sonra

 sudo service nginx restart 

Artık tüm trafik nginx sunucusu tarafından işlenecek ve tüm dinamik apache isteğini gönderecek ve statik içerik nginx sunucusu tarafından sunulmaktadır.

Önbellek gibi ön yapılandırma için:

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

0
01 июня '18 в 15:15 2018-06-01 15:15 Cevap Kamal Kumar 01 Haziran '18 'de 15:15 de verilecek 2018-06-01 15:15

@ Lfender6445 ve @ SAURABH'ı takip etmek -

Benim sorunum aynı zamanda Vagrant 2.2.2'ye yükselttikten sonra Apache2'nin misafir yüklenirken bir web sunucusu olarak başlatılmasıydı. Önceden, sadece bir web sunucusu olarak nginx vardı.

Alanda sgragras ssh ve konuk penceresinin her yüklenişinde Apache2'nin başlatılmasını engellemek için aşağıdaki komutu çalıştırın:

 sudo update-rc.d -f apache2 remove 

Ssh'den çık, başıboş dur, başıboş. Problem çözüldü.

0
03 дек. Cevap Lance Cleveland 03 dec tarafından verilmiştir . 2018-12-03 21:58 '18, 21:58, 2018-12-03 21:58

Benim sorunum, örtüşen dinleme direktifleri olmasıydı. Üst üste binen direktifleri kaçarak çözmeyi başardım.

 grep -r listen /etc/nginx/* 

Aynı portta iki dosya dinlendi:

 /etc/nginx/conf.d/default.conf: listen 80; /etc/nginx/sites-enabled/default.conf: listen 80; 
0
16 янв. Cevap Kara 16 Ocak 2019-01-16 20:54 '19 , saat 20:54, 2019-01-16 20:54

etiketleriyle ilgili diğer sorular veya Soru sor