พยายามทำความเข้าใจว่าทำไมการติดตั้ง nginx ใหม่นี้จึงไม่ให้บริการไฟล์ใดๆ เลย ฉันมีการกำหนดค่าเว็บไซต์ขั้นต่ำ (rtmp ทำงานล่าสุดที่ฉันตรวจสอบ แต่นั่นไม่จำเป็นในขณะนี้ เพิ่งเพิ่มการกำหนดค่าพอร์ต 80 ฉันพูดถึงเพียงเพราะคุณจะเห็นมันในการกำหนดค่า)
เมื่อฉันพยายามเข้าถึงโฮสต์นี้ (โดย IP หรือชื่อโฮสต์) ฉันได้รับข้อผิดพลาด "403 (ต้องห้าม)" แสดงบนหน้าเว็บ และไม่พบสิ่งใดเลยในไฟล์ /var/log/nginx/error.log (ไฟล์นั้นมีไบต์เป็นศูนย์ แม้จะรีบูตและลองใหม่อีกครั้ง)
คำถามอื่นๆ ทั้งหมดที่ฉันพบในลักษณะนี้เกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์ มีความช่วยเหลือในไฟล์ error.log เนื่องจาก error.log ว่างเปล่า ฉันจึงสร้างคำถามใหม่นี้
สิ่งนี้เกิดขึ้นเมื่อฉันพยายามใช้สิ่งอำนวยความสะดวกดัชนีเริ่มต้น และเมื่อฉันลองใช้ไฟล์เฉพาะ เช่นตัวอย่างเหล่านี้:
http://hpmicro1
http://hpmicro1.innerdomain.com
http://hpmicro1.innerdomain.com/index.html
http://192.168.1.5
http://192.168.1.5/index.html
http://192.168.1.5/index.php
และอื่น ๆ อย่างที่คุณเห็น ไฟล์เหล่านั้นมีอยู่และเป็นของ www-data:
# ls -l /www/htdocs
รวม 60
-rw-rw-rw- 1 www-data www-data 35752 17 ก.ค. 14:09 น. dbg-wizard.php
drwxrwxr-x 2 www-data www-data 4096 ก.ค. 59 08:15 ฟังก์ชั่น
drwxrwxr-x 2 www-data www-data 4096 17 กรกฎาคม 12:38 GetChats
-rw-r--r-- 1 www-data www-data 10918 ก.ค. 61 16:16 น. index.html
-rw-rw-rw- 1 www-data www-data 20 ก.ค. 60 14:18 น. index.php
# ls -ld /www/htdocs
drwxrwxr-x 5 www-data เดนนิส 4096 18 ก.ค. 16:22 /www/htdocs
นี่คือเนื้อหาไฟล์ /etc/nginx/nginx.conf:
# grep -v '^\s*#' /etc/nginx/nginx.conf
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;
เหตุการณ์ {
worker_connections 768;
}
http {
ส่งไฟล์บน;
tcp_nopush บน;
tcp_nodelay บน;
keepalive_timeout 65;
types_hash_max_size 2048;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
เปิด ssl_prefer_server_ciphers;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
เปิด gzip;
รวม /etc/nginx/conf.d/*.conf;
รวม /etc/nginx/sites-enabled/*;
}
rtmp {
เซิร์ฟเวอร์ {
ฟัง 2478;
chunk_size 4096;
alert_method รับ;
แอปพลิเคชัน WendellLive {
on_publish http://localhost/auth;
มีชีวิตต่อ;
บันทึก;
record_path /svr/rtmp-บันทึก;
record_unique บน;
กด rtmp://localhost/Wendell_YT;
}
แอปพลิเคชัน Wendell_YT {
มีชีวิตต่อ;
บันทึก;
อนุญาตให้เผยแพร่ 127.0.0.1;
ปฏิเสธการเผยแพร่ทั้งหมด
กด rtmp://a.rtmp.youtube.com/live2/<wendell_yt_stream_key>;
}
}
}
และการกำหนดค่า /etc/nginx/sites-enabled/default
# grep -v '^\s*#' เริ่มต้น
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
รูท /www/htdocs; # เพิ่ม - Lovelady - 18-ก.ค.-2564
ดัชนี index.php index.html index.htm index.nginx-debian.html;
server_name home.lovelady.com;
ที่ตั้ง / {
try_files $uri $uri/ =404;
}
สถานที่ / รับรองความถูกต้อง {
ถ้า ($arg_pwd = 'my_secret_not_yours') {
คืน 200;
}
กลับ 401; # ไม่มีอำนาจ
}
}
ข้อมูลเวอร์ชัน:
รุ่น nginx: nginx/1.18.0 (Ubuntu)
>>> แมว /etc/os-release
NAME="อูบุนตู"
VERSION="20.04.2 LTS (โฟกัสแอ่ง)"
ID=อูบุนตู
ID_LIKE=เดเบียน
PRETTY_NAME="อูบุนตู 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=โฟกัส
UBUNTU_CODENAME=โฟกัส
เนื้อหาของ /var/log/nginx คือ:
# ls -ltr /var/log/nginx/
รวม 72
-rw-r----- 1 www-data adm 480 5 เม.ย. 23:19 error.log.3.gz
-rw-r----- 1 www-data adm 464 20 พฤษภาคม 23:46 น. access.log.14.gz
-rw-r----- 1 www-data adm 469 21 พฤษภาคม 23:46 น. access.log.13.gz
-rw-r----- 1 www-data adm 468 22 พฤษภาคม 23:46 น. access.log.12.gz
-rw-r----- 1 www-data adm 464 23 พฤษภาคม 23:47 น. access.log.11.gz
-rw-r----- 1 www-data adm 472 24 พฤษภาคม 23:47 น. access.log.10.gz
-rw-r----- 1 www-data adm 472 25 พฤษภาคม 23:47 น. access.log.9.gz
-rw-r----- 1 www-data adm 464 26 พฤษภาคม 23:47 น. access.log.8.gz
-rw-r----- 1 www-data adm 196 27 พฤษภาคม 01:17 น. access.log.7.gz
-rw-r----- 1 www-data adm 97 28 พฤษภาคม 06:10 error.log.2.gz
-rw-r----- 1 www-data adm 248 มิ.ย. 21 22:31 น. access.log.6.gz
-rw-r----- 1 www-data adm 110 มิ.ย. 24 12:37 น. access.log.5.gz
-rw-r----- 1 www-data adm 153 มิ.ย. 25 11:22 น access.log.4.gz
-rw-r----- 1 www-data adm 102 มิ.ย. 26 08:22 access.log.3.gz
-rw-r----- 1 www-data adm 140 28 มิ.ย. 21:09 error.log.1
-rw-r----- 1 www-data adm 0 29 มิ.ย. 00:00 error.log
-rw-r----- 1 www-data adm 275 ก.ค. 59 08:41 น. access.log.2.gz
-rw-r----- 1 www-data adm 216 ก.ค. 60 12:50 น. access.log.1
-rw-r----- 1 www-data adm 193 ก.ค. 61 16:07 น. access.log
access.log มีหนึ่งบรรทัดนี้:
# cat /var/log/nginx/access.log
192.168.1.203 - - [18/Jul/2021:16:07:37 -0400] "GET / HTTP/1.1" 200 20 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/91.0.4472.124 Safari/537.36"
ผลลัพธ์ของ nginx -T ตามคำขอ:
nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
#
# ความช่วยเหลือมากมายจากไซต์นี้:
# https://www.scaleway.com/en/docs/setup-rtmp-streaming-server/
#
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;
เหตุการณ์ {
worker_connections 768;
# multi_accept บน;
}
http {
##
# การตั้งค่าพื้นฐาน
##
ส่งไฟล์บน;
tcp_nopush บน;
tcp_nodelay บน;
keepalive_timeout 65;
types_hash_max_size 2048;
# ปิด server_tokens;
# server_names_hash_bucket_size 64;
# server_name_in_redirect ปิด;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
##
# การตั้งค่า SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
เปิด ssl_prefer_server_ciphers;
##
# การตั้งค่าการบันทึก
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# การตั้งค่า Gzip
##
เปิด gzip;
# gzip_vary บน;
# gzip_proxyed ใด ๆ ;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types ข้อความ/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;
##
# การกำหนดค่าโฮสต์เสมือน
##
รวม /etc/nginx/conf.d/*.conf;
รวม /etc/nginx/sites-enabled/*;
}
#จดหมาย {
# # ดูตัวอย่างสคริปต์การตรวจสอบได้ที่:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "ผู้ใช้";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:110;
#โปรโตคอลpop3;
# เปิดพร็อกซี;
# }
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:143;
# โปรโตคอล imap;
# เปิดพร็อกซี;
# }
#}
rtmp {
เซิร์ฟเวอร์ {
ฟัง 2478;
chunk_size 4096;
alert_method รับ;
แอพพลิเคชั่น love-uav {
on_publish http://localhost/auth;
มีชีวิตต่อ;
#ตั้งค่านี้เป็น "ปิดการบันทึก" หากคุณไม่ต้องการบันทึกสำเนาการออกอากาศของคุณ:
#บันทึกทั้งหมด;
บันทึก;
# ไดเร็กทอรีที่จะจัดเก็บการบันทึก
record_path /svr/rtmp-บันทึก;
record_unique บน;
# การรีสตรีมสิ่งต่อไปนี้
กด rtmp://localhost/love-uav_YT;
#กด rtmp://localhost/love-uav_Twitch;
#กด rtmp://localhost/love-uav_Facebook;
}
#แอพพลิเคชั่นยูทูป
แอปพลิเคชัน love-uav_YT {
มีชีวิตต่อ;
บันทึก;
#อนุญาตให้ localhost เผยแพร่เท่านั้น
อนุญาตให้เผยแพร่ 127.0.0.1;
ปฏิเสธการเผยแพร่ทั้งหมด
# กด URL ด้วยคีย์สตรีม youtube
กด rtmp://a.rtmp.youtube.com/live2/jsqu-54jv-uw68-39tf-xxxx;
}
# แอปพลิเคชั่น Twitch
แอปพลิเคชัน love-uav_Twitch {
มีชีวิตต่อ;
บันทึก;
#อนุญาตให้ localhost เผยแพร่เท่านั้น
อนุญาตให้เผยแพร่ 127.0.0.1;
ปฏิเสธการเผยแพร่ทั้งหมด
# พุช URL ด้วยสตรีมคีย์ Twitch
กด rtmp://live-cdg.twitch.tv/app/<love-uav__twitch_stream_key>;
}
แอปพลิเคชัน love-uav_Facebook {
มีชีวิตต่อ;
บันทึก;
#อนุญาตให้ localhost เผยแพร่เท่านั้น
อนุญาตให้เผยแพร่ 127.0.0.1;
ปฏิเสธการเผยแพร่ทั้งหมด
# กด URL ด้วยคีย์สตรีม Facebook
# กด rtmps://live-api-s.facebook.com:443/rtmp/<love-uav__facebook_stream_key>;
}
แอปพลิเคชัน WendellLive {
on_publish http://localhost/auth;
มีชีวิตต่อ;
#ตั้งค่านี้เป็น "ปิดการบันทึก" หากคุณไม่ต้องการบันทึกสำเนาการออกอากาศของคุณ:
#บันทึกทั้งหมด;
บันทึก;
# ไดเร็กทอรีที่จะจัดเก็บการบันทึก
record_path /svr/rtmp-บันทึก;
record_unique บน;
# การรีสตรีมสิ่งต่อไปนี้
กด rtmp://localhost/Wendell_YT;
#push rtmp://localhost/Wendell_twitch;
#กด rtmp://localhost/Wendell_facebook;
}
#แอพพลิเคชั่นยูทูป
แอปพลิเคชัน Wendell_YT {
มีชีวิตต่อ;
บันทึก;
#อนุญาตให้ localhost เผยแพร่เท่านั้น
อนุญาตให้เผยแพร่ 127.0.0.1;
ปฏิเสธการเผยแพร่ทั้งหมด
# กด URL ด้วยคีย์สตรีม youtube
กด rtmp://a.rtmp.youtube.com/live2/<wendell_yt_stream_key>;
}
}
}
# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module โมดูล/ngx_http_image_filter_module.so;
# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module โมดูล/ngx_http_xslt_filter_module.so;
# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module โมดูล/ngx_mail_module.so;
# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-rtmp.conf:
load_module โมดูล/ngx_rtmp_module.so;
# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module โมดูล/ngx_stream_module.so;
# ไฟล์กำหนดค่า /etc/nginx/mime.types:
ประเภท {
ข้อความ/html html htm shtml;
ข้อความ/css css;
ข้อความ/xml xml;
รูปภาพ/gif gif;
รูปภาพ/jpeg jpeg jpg;
แอปพลิเคชัน/จาวาสคริปต์ js;
แอ็พพลิเคชัน/atom+xml อะตอม;
แอปพลิเคชัน/rss+xml rss;
ข้อความ/mathml mml;
ข้อความ/ธรรมดา txt;
text/vnd.sun.j2me.app-descriptor jad;
ข้อความ/vnd.wap.wml wml;
ข้อความ/x-คอมโพเนนต์ htc;
รูปภาพ/png png;
รูปภาพ/tiff tif tiff;
ภาพ/vnd.wap.wbmp wbmp;
ไอคอนรูปภาพ/x-icon;
ภาพ/x-jng jng;
ภาพ/x-ms-bmp bmp;
ภาพ/svg+xml svg svgz;
รูปภาพ/เว็บเพจ เว็บเพจ;
แอปพลิเคชัน/ฟอนต์-woff woff;
แอปพลิเคชัน / java-archive jar war ear;
แอปพลิเคชัน/json json;
แอปพลิเคชัน/mac-binhex40 hqx;
เอกสารแอปพลิเคชัน/msword;
ใบสมัคร/pdf pdf;
ใบสมัคร/postscript ps eps ai;
แอปพลิเคชัน/rtf rtf;
แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
แอปพลิเคชัน/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
แอปพลิเคชัน/vnd.ms-powerpoint ppt;
แอปพลิเคชัน/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
แอปพลิเคชัน/vnd.google-earth.kmz kmz;
แอปพลิเคชัน/x-7z-บีบอัด 7z;
ใบสมัคร/x-cocoa cco;
แอปพลิเคชัน/x-java-archive-diff jardiff;
แอปพลิเคชัน/x-java-jnlp-file jnlp;
เรียกใช้แอปพลิเคชัน / x-makeself;
แอปพลิเคชัน/x-perl pl pm;
แอปพลิเคชัน/x-pilot prc pdb;
แอปพลิเคชั่น/x-rar-บีบอัด rar;
แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
ใบสมัคร / ทะเล x-sea;
แอปพลิเคชั่น/x-shockwave-แฟลช swf;
แอปพลิเคชั่น / นั่ง x-stuffit;
ใบสมัคร/x-tcl tcl tk;
ใบสมัคร/x-x509-ca-cert จาก pem crt;
แอปพลิเคชัน/x-xpinstall xpi;
แอปพลิเคชัน/xhtml+xml xhtml;
แอปพลิเคชัน/xspf+xml xspf;
แอปพลิเคชั่น / ซิปซิป;
แอปพลิเคชัน / octet-stream bin exe dll;
แอ็พพลิเคชัน/octet-stream deb;
แอปพลิเคชัน/octet-stream dmg;
แอปพลิเคชั่น/octet-stream iso img;
แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document.docx;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.การนำเสนอ pptx;
เสียง/midi กลาง midi kar;
เสียง/mpeg mp3;
เสียง/ogg ogg;
เสียง/x-m4a m4a;
เสียง/x-realaudio ra;
วิดีโอ/3gpp 3gpp 3gp;
วิดีโอ/mp2t ts;
วิดีโอ/mp4 mp4;
วิดีโอ/mpeg mpeg mpg;
วิดีโอ/quicktime mov;
วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
วิดีโอ/x-flv flv;
วิดีโอ/x-m4v m4v;
วิดีโอ/x-mng mng;
วิดีโอ/x-ms-asf asx asf;
วิดีโอ/x-ms-wmv wmv;
วิดีโอ/x-msvideo avi;
}
# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/default:
##
# คุณควรดู URL ต่อไปนี้เพื่อทำความเข้าใจที่แน่นอน
# ของไฟล์การกำหนดค่า Nginx เพื่อปลดปล่อยพลังของ Nginx ได้อย่างเต็มที่
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# ในกรณีส่วนใหญ่ ผู้ดูแลระบบจะลบไฟล์นี้ออกจากไซต์ที่เปิดใช้งาน/ และ
# ปล่อยให้เป็นข้อมูลอ้างอิงภายในไซต์ที่มีอยู่ซึ่งจะยังคงอยู่ต่อไป
# อัปเดตโดยทีมบรรจุภัณฑ์ nginx
#
# ไฟล์นี้จะโหลดไฟล์การกำหนดค่าที่ผู้อื่นให้มาโดยอัตโนมัติ
# แอปพลิเคชัน เช่น Drupal หรือ Wordpress แอปพลิเคชันเหล่านี้จะทำขึ้น
# อยู่ภายใต้เส้นทางที่มีชื่อแพ็คเกจนั้น เช่น /drupal8
#
# โปรดดู /usr/share/doc/nginx-doc/examples/ สำหรับตัวอย่างโดยละเอียดเพิ่มเติม
##
# การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น
#
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
# การกำหนดค่า SSL
#
# ฟัง 443 ssl default_server;
# ฟัง [::]:443 ssl default_server;
#
# หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
# ดู: https://bugs.debian.org/773332
#
# อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
# ดู: https://bugs.debian.org/765782
#
# ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
# ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
#
# รวมตัวอย่าง/snakeoil.conf;
#root /var/www/html; # ความคิดเห็น - Lovelady - 18-ก.ค.-2564
รูท /www/htdocs; # เพิ่ม - Lovelady - 18-ก.ค.-2564
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
ดัชนี index.php index.html index.htm index.nginx-debian.html;
server_name home.lovelady.com;
ที่ตั้ง / {
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
try_files $uri $uri/ =404;
}
สถานที่ / รับรองความถูกต้อง {
ถ้า ($arg_pwd = 'my_secret_not_yours') {
คืน 200;
}
กลับ 401; # ไม่มีอำนาจ
}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
#
#location ~ \.php$ {
# รวมตัวอย่าง/fastcgi-php.conf;
#
# # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
# fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
# # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
# fastcgi_pass 127.0.0.1:9000;
#}
# ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
# เห็นด้วยกับของ nginx
#
#location ~ /\.ht {
#ปฏิเสธทั้งหมด
#}
}
# การกำหนดค่าโฮสต์เสมือนสำหรับ example.com
#
# คุณสามารถย้ายไปยังไฟล์อื่นภายใต้ไซต์ที่มีจำหน่าย/ และ symlink ที่
# เพื่อเปิดใช้งานไซต์ / เพื่อเปิดใช้งาน
#
#เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
#
# server_name example.com;
#
# ราก /var/www/example.com;
# ดัชนี index.html;
#
# ที่ตั้ง / {
# try_files $uri $uri/ =404;
# }
#}
ความล้มเหลว: