Score:3

การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว) แม้ว่าจะมีเพียง NGINX ที่ทำงานอยู่

ธง mp

หมายเหตุ: ปรากฎว่าไม่มีปัญหาใดๆ เลย ดูความคิดเห็นสำหรับรายละเอียด

ฉันเพิ่งได้รับอินสแตนซ์ใหม่จาก Oracle Cloud, Ubuntu 20.04 ย่อเล็กสุด เนื่องจากฉันพยายามเรียกใช้ DokuWiki บนอินสแตนซ์นี้ ฉันจึงได้ติดตั้งแพ็คเกจเหล่านี้:

sudo apt ติดตั้งเครื่องมือสุทธิ lsof wget nano
sudo apt ติดตั้ง php7.4-fpm php7.4-xml php7.4-mbstring imagemagick nginx certbot python3-certbot-nginx

ฉันไม่เคยสัมผัส nginx.conf ใน /etc/nginx แต่ลบไปแล้ว ค่าเริ่มต้น เชื่อมโยงเข้า /etc/sites-enabled และใส่ไฟล์ conf ของตัวเองเข้าไป /etc/nginx/conf.d พร้อมชื่อ ตัวอย่าง.com.conf(ชื่อจริงถูกปกปิดแม้ว่า)

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    server_name example.com;
    ราก /var/www/dokuwiki;
    ดัชนี index.php index.html;

    ที่ตั้ง / { 
        try_files $uri $uri/ @dokuwiki;
    }

    ที่ตั้ง @dokuwiki {
        เขียนใหม่ ^/_media/(.*) /lib/exe/fetch.php?media=$1 ล่าสุด;
        เขียนใหม่ ^/_detail/(.*) /lib/exe/detail.php?media=$1 ล่าสุด;
        เขียนใหม่ ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 สุดท้าย;
        เขียนใหม่ ^/(.*) /doku.php?id=$1&$args สุดท้าย;
    }

    ตำแหน่ง ~ \.php$ {
        รวมตัวอย่าง/fastcgi-php.conf;
        fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        รวม fastcgi_params;
    }
    
    สถานที่ ~ /(conf|bin|inc|vendor)/ {
        ปฏิเสธทั้งหมด
    }
    
    ตำแหน่ง ~ /data/ {
        ภายใน;
    }
}

และแน่นอนว่า, /var/www/dokuwiki เป็นของ www-ข้อมูล(ทั้งผู้ใช้และกลุ่ม) ด้วยคำสั่งนี้:

sudo chown -R www-data:www-data /var/www/dokuwiki

ปัญหาคือ ฉันไม่สามารถเข้าถึงเว็บไซต์ของฉันได้ เมื่อฉันพิมพ์ จิงซ์ ในเทอร์มินัล มันร้องแบบนี้:

nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] ยังไม่สามารถผูกได้ ()

แต่ฉันตรวจสอบแล้วว่าไม่มี อาปาเช่2สิ่งที่เหมือนและไม่มีกระบวนการอื่นใดที่รับฟังพอร์ต 80

root@redacted:~# lsof -i :80
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
nginx 1296 รูท 6u IPv4 32966 0t0 TCP *:http (ฟัง)
nginx 1297 www-data 6u IPv4 32966 0t0 TCP *:http (ฟัง)
nginx 1298 www-data 6u IPv4 32966 0t0 TCP *:http (ฟัง)

root@redacted:~# systemctl สถานะ nginx
â nginx.service - เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ
     โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/nginx.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
     ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่วันเสาร์ 2021-11-06 13:24:23 UTC; 16 นาทีที่แล้ว
       เอกสาร: man:nginx(8)
    กระบวนการ: 1294 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
    กระบวนการ: 1295 ExecStart=/usr/sbin/nginx -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
   PID หลัก: 1296 (nginx)
      งาน: 3 (จำกัด: 1110)
     หน่วยความจำ: 3.1M
     CGroup: /system.slice/nginx.service
             ââ1296 nginx: กระบวนการหลัก /usr/sbin/nginx -g daemon เปิด; master_process บน;
             ââ1297 nginx: กระบวนการของผู้ปฏิบัติงาน
             ââ1298 nginx: กระบวนการของผู้ปฏิบัติงาน

06 พ.ย. 13:24:23 แก้ไข systemd[1]: การเริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ...
06 พ.ย. 13:24:23 แก้ไข systemd[1]: เริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ

root@redacted:~# ฟิวเซอร์ -v 80/tcp
                     คำสั่งการเข้าถึง PID ของผู้ใช้
80/tcp: รูท 1296 F.... nginx
                     www-ข้อมูล 1297 F.... nginx
                     www-ข้อมูล 1298 F.... nginx

เพราะไม่ได้แตะ nginx.conf, nginx -t กำลังบอกว่าไม่มีข้อผิดพลาด แต่การตรวจสอบ .conf ไฟล์ล้มเหลว:

root@redacted:~# nginx -tc /etc/nginx/conf.d/example.com.conf
nginx: [emerg] ไม่อนุญาตให้ใช้คำสั่ง "เซิร์ฟเวอร์" ที่นี่ใน /etc/nginx/conf.d/example.com.conf:1
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/conf.d/example.com.conf ล้มเหลว

แต่ฉันคิดว่านี่ไม่เกี่ยวข้องกับปัญหานี้ (ไม่แน่ใจ)

แม้แต่การฆ่ากระบวนการทั้งหมดโดยใช้พอร์ต 80 ก็ไม่ได้ผลเช่นกัน

ฉันค้นหา google เพื่อแก้ปัญหานี้แล้ว แต่ไม่พบวิธีใดที่ใช้การได้

ปล. ฉันเปิดพอร์ตจาก iptables และแผงเว็บ OC ดังนั้นสิ่งที่พอร์ตจะไม่ใช่สาเหตุของปัญหานี้ฉันคิดว่า

in flag
`สถานะ systemctl` ของคุณแสดงว่า nginx กำลังทำงานอยู่ คุณต้องหยุดหรือเริ่มต้นใหม่แทนการเริ่มต้นด้วยตนเอง
tetratheta avatar
mp flag
@GeraldSchneider นั่นไม่ได้แก้ปัญหา หลังจากรีสตาร์ท `nginx` ยังคงแสดงข้อผิดพลาดในการรวม
tetratheta avatar
mp flag
โอ้ ฉันเข้าใจความคิดเห็นของ Gerald ผิด: ตอนนี้มันใช้งานได้แล้ว อันที่จริงก็ไม่มีปัญหาแต่อย่างใด คำสั่ง `nginx` พยายามเปิดกระบวนการ NGINX อื่น แทนที่จะแสดงบันทึก (นั่นคือสิ่งที่ฉันคิด) ขอบคุณ!
djdomi avatar
za flag
@tetratheta โปรดเตือนให้เพิ่มคำตอบและยอมรับมิฉะนั้นเราจะเตือนให้ตอบคำถามนี้
Score:1
ธง mp

ฉันไม่รู้ว่าฉันสามารถโพสต์คำตอบสำหรับคำถามของฉันเองได้หรือไม่ แต่นี่คือคำตอบ

ที่จริงฉันเข้าใจอะไรผิดไป จิงซ์ คำสั่งไม่ ฉันคิดว่าสิ่งนี้จะแสดงบันทึกของกระบวนการ NGINX ปัจจุบันให้ฉันเห็น แต่ในความเป็นจริง มันพยายามสร้างกระบวนการ NGINX ใหม่ ซึ่งจะถูกบล็อกโดยกระบวนการ NGINX ปัจจุบัน นั่นเป็นเหตุผลที่มันแสดงให้ฉันเห็น [emerg] การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว) ผิดพลาดกับฉัน

สรุปได้ว่าไม่มีปัญหากับสภาพแวดล้อมของฉัน ทุกอย่างเรียบร้อยดี.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา