nginx - nginx: [emerg] বাইন্ড () থেকে [::]: 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 পোর্টে একটি প্রক্সি পাস দিয়ে উউসগি ব্যবহার করছি uউউজি চলছে। Nginx হয় না। আমি উবুন্টু ব্যবহার করছি 12.4

নীচে আমার এনগিনেক্স কনফ ফাইলের প্রাসঙ্গিক অংশ রয়েছে

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

এখানে আমি ওবুন্টু 12.04 এ এনজিঙ্ক্স ইনস্টল করব

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

19
আমি আগে কখনও ছিল না যে সমস্যা খুঁজে পেয়েছি। আমাকে / ইত্যাদি / এনগিনেক্স / সাইট-উপলভ্য / ডিফল্ট মুছতে হয়েছিল। তারপর এটি কাজ করে। আমার কনফারেন্সটি ছিল / ইত্যাদি / এনজিনেক্স / ডিফল্ট
টম্পা

আমি Nginx + বার্নিশ চালাচ্ছিলাম এবং এই ত্রুটি ছিল। সমাধানটি শীর্ষস্থানীয় উভয়ই ছিল, তারপরে প্রথমে এনজিনেক্স শুরু করুন এবং তারপরে বার্নিশটি করুন।
বেন

আপনি নামযুক্ত পরিষেবা বন্ধ করার চেষ্টা করতে পারেন।
অমল

আপনি কি সাইটগুলি সক্ষম থেকে আপনার ডিফল্ট সরিয়ে ফেলেছেন?
ওল্ফপ্যাক'08

আমি এখানে সমস্ত সমাধান চেষ্টা করেছিলাম। ব্যবহৃত সমস্ত বন্দর চেক করে (এটি এনজিআইএনএক্স নিজেই ব্যবহার করছিল) তাই আমি বন্দরটি মেরে আবার চালু করেছি। কবজির মতো কাজ করেছেন।
গাভিন

উত্তর:


202

[::]:80 একটি আইপিভি 6 ঠিকানা।

আপনার যদি একটি এনজিনেক্স কনফিগারেশন রয়েছে যা 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 টি সরিয়েও এটি ঠিক করতে পারেন; কারণ শুনুন [::]: আইপিভি 4 এবং আইপিভি 6 উভয়ই 80 টি পছন্দসই। যদিও দেখুন কিছু সিস্টেম (যেমন ফ্রিবিএসডি) আইপিভি 4 এবং আইপিভি 6 সকেটগুলি আলাদা করে এবং তারপরে এটি কার্যকর হয় না, তবে লিনাক্সের জন্য এটি ঠিক করা উচিত। wiki.nginx.org/HttpCoreModule#listen
gitaarik

4
এটি খনন করার জন্য এবং কেন মুছে ফেলা /etc/nginx/sites-available/defaultউপরোক্ত ত্রুটির সাথে সহায়তা করে তার একটি ব্যাখ্যা দেওয়ার জন্য ধন্যবাদ
অলিভার

1
এমনকি আমি আইপিভি 6 লাইনটি মন্তব্য করার পরেও আমি চেষ্টা করার পরেও একই ত্রুটিটি পাই sudo service nginx restart। আমি যখন করি তখন আমি netstat -tulpn |grep 80কেবল একবার nginx প্রক্রিয়া পেয়ে যাই (0.0.0.0:80)। কোনও ধারণা কেন এটি পুনরায় চালু হবে না?
রোমান

@ রেডনো যা বলেছিলেন তা আমি দ্বিতীয় স্থানে রেখেছি, তবে শোনোটি সরানোর পরিবর্তে আপনি কেবল এটিকে মন্তব্য করতে পারেন
d4nyll

সেটিংয়ের ipv6only=onফলে সমস্যাটি স্থির হয়ে গেছে, তবে এনজিঙ্কসটি সত্যই সনাক্ত করতে পারে যে এটি একই ইন্টারফেস: পোর্টকে দু'বার আবদ্ধ করার চেষ্টা করছে।
ড্যান ড্যাসক্লেস্কু

246

আমি এটি চালিয়ে স্থির করেছিলাম sudo apachectl stop- দেখা যাচ্ছে যে ব্যাকগ্রাউন্ডে অ্যাপাচি চলছিল এবং nginx কে পছন্দসই পোর্ট থেকে শুরু করতে বাধা দিয়েছে।

উবুন্টু রান sudo /etc/init.d/apache2 stop


8
sudo /etc/init.d/apache2 stopউবুন্টু 14.04 এ
অ্যাপাচি

3
কারণটি হ'ল আপনার একই পোর্টে দুটি ওয়েব সার্ভার শোনা যাবে না। একটি চয়ন করুন, এবং যদি প্রয়োজন হয়, প্রক্সি। যেমন এনজিনেক্স ব্যবহার করে তবে নির্দিষ্ট অনুরোধের জন্য (যেমন phpফাইলগুলির জন্য ), অ্যাপাচি পোর্টে প্রক্সি।
d4nyll

একটি নতুন তাজা 9 ইনস্টল এখানে একই।
jirarium

ধন্যবাদ। তবে কোনও ধারণা কেন হঠাৎ এটি শুরু হয়েছিল? আমি এক সপ্তাহের জন্য সার্ভারটি স্পর্শ করি নি, তবে এটি গত রাতে শুরু হয়েছিল।
অজয় সিং

1
আপনার সমাধানের জন্য ধন্যবাদ। এটি আমার জন্য কাজ করে, আমি গুগল ক্লাউড প্ল্যাটফর্ম ব্যবহার করি
কনগল করি

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। এনগিনেক্স এই ডিফল্ট কনফিগারেশনটি লোড করার চেষ্টা করছিল, যা আইপিভি 6 এর উপরে পোর্ট 80 শুনবে, তারপরে এটি আমার রিয়েল কনফিগারগুলি পড়তেও লোড করছিল। সেই সিমিলিংকটি সরানো সমস্যার সমাধান করেছে।
ড্যান ড্যাসকলেসকু

15
আপনাকে মুছে /etc/nginx/sites-available/default ফেলতে হবে না, কেবল এর সাথে প্রতীকী লিঙ্কটি সরিয়ে ফেলুন -sudo rm /etc/nginx/sites-enabled/default
d4nyll

আমি nginx8080 বন্দর এবং varnish80 নম্বর বন্দর এবং এই উত্তরের অনুরূপ পোর্টে চালানোর চেষ্টা করার সময় আমি এই সমস্যাটি অনুভব করেছি , আমার nginxডিফল্ট কনফিগারেশনে সমস্যাটি এখনও পোর্ট ৮০ তে শুনছে যদিও আমার কনফিগারেশনগুলি sites-available8080 বন্দরটিতে শোনা গিয়েছিল। এটি অবস্থিত ছিল/etc/nginx/conf.d/default
জিগোজাকো

24

আমিও একই ত্রুটি পেয়ে যাচ্ছিলাম।

nginx: [emerg] বাঁধুন () থেকে [::]: 80 ব্যর্থ হয়েছে (98: ঠিকানা ইতিমধ্যে ব্যবহারে রয়েছে)

এবং যখন আমি ব্রাউজারে লোকালহোস্টটি টাইপ করেছি, তখন আমি পেয়ে যাচ্ছিলাম

এটি কাজ করে!

এটি এই সার্ভারের জন্য ডিফল্ট ওয়েব পৃষ্ঠা।

ওয়েব সার্ভার সফ্টওয়্যার চলছে তবে এখনও কোনও সামগ্রী যুক্ত করা হয়নি। nginx স্বাগত পৃষ্ঠার পরিবর্তে, অ্যাপাচি 2 একই পোর্টে চলছে,

  1. অ্যাপাচি 2 পোর্টস কনফ ফাইলটি সন্ধান করুন

    sudo /etc/apache2/ports.conf
    
  2. অন্যটি বন্দর পরিবর্তন করুন 80, আমি এটি হিসাবে তৈরি70

  3. ফাইল সংরক্ষণ করুন

  4. আপনার সিস্টেম পুনরায় আরম্ভ করুন

এটি আপনার পক্ষেও কাজ করবে, আপনি ব্রাউজারে লোকালহোস্ট টাইপ করলে আপনি এনগিনেক্স স্বাগত পৃষ্ঠা পাবেন page


1
আপনি একই সাথে অ্যাপাচি 2 এবং এনজিনেক্স উভয়ই চালাতে চান না। আমি পেয়েছি অ্যাপাচি ইনস্টলেশন পরিষেবাটি শুরু করে। সুতরাং, আমি "sudo /etc/init.d/apache2 স্টপ" জারি করেছি এবং তারপরে সাধারণত nginx শুরু করতে সক্ষম হয়েছি। এটি আপনাকে আপনার সিস্টেমকে রিবুট করা থেকেও বাঁচায়।
ক্রিস ওয়েস্টিন

1
আপনি ঠিক বলেছেন যে / ইত্যাদি / এনগিনেক্স / সাইটগুলি সক্ষম / ডিফল্ট সিম লিঙ্কটি মুছে ফেলা দুটি পোর্টে শুনতে বাধা দেয় না। আমি এটিকে কিছুটা বিরক্তিকর বলে মনে করি যে এনজিএনএক্সের প্রতিটি টিউটোরিয়ালটি প্রত্যেককে "ডিফল্ট" লিঙ্কটি মুছে ফেলার পরামর্শ দিয়ে শুরু হয় তবে এটি আমার ধারণা থেকে আলাদা একটি বিষয়।
eschipul

@ ইগোরগানাপলস্কি অ্যাপাচি অন্য একটি বন্দরে স্যুইচ করেছেন?
মেনাশেহে


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

লেটেনক্রিপট (সার্টবোট) এবং এনজিনেক্সে আমার একই সমস্যা ছিল,

রেফ: 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/port.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

তারপরে বিপরীত প্রক্সি সার্ভার হিসাবে এনগিনেক্স যুক্ত করুন যা অ্যাপাচি পোর্ট শুনতে পাবে

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

এখন সমস্ত ট্র্যাফিক এনজিনেক্স সার্ভার দ্বারা পরিচালিত হবে এবং সমস্ত গতিশীল অনুরোধ অ্যাপাচে প্রেরণ করবে এবং স্ট্র্যাটিক কনটেনটি এনজিএনএক্স সার্ভার দ্বারা পরিবেশন করা হবে।

ক্যাশের মতো অগ্রিম কনফিগারেশনের জন্য:

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এর মানে হল যে এখানে একাধিক এনগিনেক্স ব্লক ফাইল রয়েছে [::]:80

আমার সমাধানটি [::]:80সেটিংসের একটি অপসারণ করা

পিএস আপনার সম্ভবত ডিফল্ট ব্লক ফাইল রয়েছে। আমার পরামর্শটি হ'ল এই ফাইলটি 80 পোর্টের জন্য ডিফল্ট সার্ভার হিসাবে রাখা এবং [::]:80অন্য ব্লক ফাইলগুলি থেকে সরিয়ে দেওয়া


1

আমি ডগার পাত্রে পাশাপাশি Nginx এবং গ্যানিকর্ন চালাতে সুপারভাইজার ব্যবহার করি।

এটি ছিল সুপারভাইজারের জন্য ব্যবহৃত কনফিগারেশন:

[supervisord]
nodaemon=true

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


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

সমস্যাটি হ'ল আমি এনগনিক্স কীভাবে চালু করেছি: ডিফল্টরূপে এটি অগ্রভাগে চলে। এটি Nginx এর অন্য একটি উদাহরণ চালনার জন্য তদারকি পুনরায় চেষ্টা করে।

যোগ করে -g 'daemon off;'কমান্ড লাইন থেকে, nginx ফোরগ্রাউন্ড সময় কাটালেন সুপারভাইজার অন্য উদাহরণস্বরূপ চালানোর চেষ্টা বন্ধ করে দেয়।


1

আমার ক্ষেত্রে, অ্যাপাচি, অ্যাপাচি 2 বা এনগিনেক্সের যে কোনও একটি পরিষেবা ইতিমধ্যে চালু ছিল এবং এর কারণে আমি অন্য পরিষেবাটি চালু করতে সক্ষম হইনি।


0

আমার সাইটগুলি উপলভ্য ডিয়ারে বিভিন্ন এনজিআইএনএক্স কনফিগারেশন ফাইল থেকে আমার কাছে বেশ কয়েকটি *। সেভ ফাইল (ন্যানো থেকে জরুরি ডাম্প) ছিল। আমি এই। সেভ ফাইলগুলি মুছে ফেলার পরে, এনজিআইএনএক্স জরিমানা পুনরায় শুরু করেছে। আমি ধরে নিয়েছিলাম যে এগুলি কোনও নিরীহ ছিল কারণ যেহেতু এখানে কোনও অনুরূপ সিমলিংক নেই, তবে আমার ধারণা আমি ভুল ছিল।


0

@ Lfender6445 এবং @ সৌরব উত্তরগুলি অনুসরণ করতে -

আমার সমস্যাটিও ছিল যে ভ্যাগ্র্যান্ট ২.২.২ এ আপগ্রেড করার পরে অতিথি বুট করার সময় অ্যাপাচি 2 ওয়েব সার্ভার হিসাবে চলছিল। অতীতে আমার কেবল ওয়েব সার্ভার হিসাবে এনগিনেক্স ছিল।

ভ্যাগ্রেট এসএস বক্সে প্রবেশ করুন এবং যখনই অতিথি বাক্স বুট হবে তখন অ্যাপাচি 2 অক্ষম করার জন্য নিম্নলিখিত কমান্ডটি চালান:

sudo update-rc.d -f apache2 remove

প্রস্থান প্রস্থান ssh, যান্ত্রিক থাম, যান্ত্রিক আপ। সমস্যা সমাধান.


0

যদি উপরের সমাধানগুলির কোনও চেষ্টা করার পরেও সমস্যাটি অব্যাহত থাকে তবে একবার আপনার সার্ভারটি পুনরায় চালু করুন। এটি আমার জন্য কাজ করেছে :)


হ্যাঁ এটা হবে. তবে এনজিনেক্স প্রক্রিয়াটি মেরে ফেলা এবং কেবলমাত্র এনগিনেক্স পুনরায় চালু করাও কাজ করে। এটি উত্তর @ দ্যাটদিনহোকোকের।
খোম নাজিদ

0

আমার ক্ষেত্রে অপরাধী একটি সার্ভার-ব্লক হিসাবে প্রমাণিত হয়েছে যাতে এতে রয়েছে:

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

লিনাক্সে, একটি নির্দিষ্ট আইপি (যেমন [::1]:80) শোনার একটি সকেট একই পোর্টে শোনা একটি সকেটের সাথে বিরোধিতা করে তবে কোনও আইপি (যেমন [::]:80)। সাধারণত এনজিনেক্স এই দৃশ্যের পিছনে একটি একক সকেট ব্যবহার করে স্বচ্ছভাবে এই সমস্যাটি মোকাবেলা করবে। তবে ipv6onlyশোনার নির্দেশনার উপর স্পষ্টভাবে নির্দিষ্ট (বা কিছু অন্যান্য বিকল্প) নির্দিষ্ট করে এনজিনেক্সকে এর জন্য একটি পৃথক সকেট তৈরি করতে বাধ্য করে, ফলে Address already in useত্রুটি হয়।

যেহেতু ipv6only=onযাইহোক ডিফল্ট (১.৩.৪ থেকে) ঠিক এই নির্দেশটি থেকে এই বিকল্পটি সরিয়ে ফেলা ipv6onlyছিল এবং আমার কনফিগারেশনে অন্য কোথাও ব্যবহার করা হয়নি তা নিশ্চিত করা।


0

আমার একই সমস্যা আছে তবে আমি পোর্ট ৮০ দেখেছি যা এনগিনেক্স শুনেছেন:

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;

আমি যখন এটি সরিয়েছি, এটি কাজ করেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.