ฉันมีการตั้งค่าแบ็กเอนด์ laravel สองรายการในเส้นทางที่ต่างกัน และมีสปาบนรูท ตอนนี้ฉันต้องการตั้งค่าเซิร์ฟเวอร์ websocket พร้อมกับมัน
นี่คือเว็บไซต์ของฉัน.conf
############## block-4 : การทดสอบไดเรกทอรีย่อยหลายรายการ ############
เซิร์ฟเวอร์ {
ฟัง 80;
# ชื่อเซิร์ฟเวอร์ abc.xyz;
ชื่อเซิร์ฟเวอร์ _;
รูท /var/www/html/abc.xyz;
# ราก /var/www/html;
add_header X-Frame-ตัวเลือก "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
ดัชนี index.html index.php;
ที่ตั้ง / {
# ราก /var/www/html/abc.xyz;
try_files $uri /index.html ;
}
ชุดอักขระ utf-8;
สถานที่ = /favicon.ico {
access_log off; ปิด log_not_found;
}
ตำแหน่ง = /robots.txt {
access_log off; ปิด log_not_found;
}
# error_page 404 /index.php;
############## block-4 : การทดสอบไดเรกทอรีย่อยหลายรายการ ############
เซิร์ฟเวอร์ {
ฟัง 80;
# ชื่อเซิร์ฟเวอร์ abc.xyz;
ชื่อเซิร์ฟเวอร์ _;
รูท /var/www/html/abc.xyz;
# ราก /var/www/html;
add_header X-Frame-ตัวเลือก "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
ดัชนี index.html index.php;
ที่ตั้ง / {
# ราก /var/www/html/abc.xyz;
try_files $uri /index.html ;
}
ชุดอักขระ utf-8;
สถานที่ = /favicon.ico {
access_log off; ปิด log_not_found;
}
ตำแหน่ง = /robots.txt {
access_log off; ปิด log_not_found;
}
# error_page 404 /index.php;
# BACKEND คำแนะนำในการเขียนตำแหน่งใหม่
ตำแหน่ง / แบ็กเอนด์ {
นามแฝง /var/www/html/abc.xyz/backend;
try_files $uri $uri/ @แบ็คเอนด์;
ตำแหน่ง ~ \.php$ {
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
}
}
ตำแหน่ง @แบ็กเอนด์ {
# เขียนใหม่ /backend/(.*)$ /backend/index.php?/$1 สุดท้าย;
เขียนใหม่ ^/backend/(.*)$ /backend/index.php last;
}
# จุดสิ้นสุดของตำแหน่ง BACKEND
# BACKEND คำแนะนำในการเขียนตำแหน่งใหม่
ที่ตั้ง /api {
นามแฝง /var/www/html/abc.xyz/api;
try_files $uri $uri/ @api;
ตำแหน่ง ~ \.php$ {
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
}
}
ที่ตั้ง @api {
เขียนใหม่ /api/(.*)$ /api/index.php?/$1 สุดท้าย;
}
# จุดสิ้นสุดของตำแหน่ง BACKEND
# phpmyadmin เขียนกฎใหม่
ตำแหน่ง /phpmyadmin {
รูท /usr/share/;
ดัชนี index.php index.html index.htm;
ตำแหน่ง ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
รูท /usr/share/;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
รวม /etc/nginx/fastcgi_params;
}
ตำแหน่ง ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
รูท /usr/share/;
}
}
# สิ้นสุดบล็อก phpmyadmin ที่นี่
# การกำหนดค่าเว็บซ็อกเก็ตที่นี่
ที่ตั้ง /ws* {
proxy_pass http://127.0.0.1:6001;
proxy_set_header โฮสต์ $host;
proxy_read_timeout 60;
proxy_connect_timeout 60;
ปิด proxy_redirect;
# อนุญาตให้ใช้ websockets
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
}
# สิ้นสุดการกำหนดค่า websocket
สถานที่ ~ /\.(?!เป็นที่รู้จัก).* {
ปฏิเสธทั้งหมด
}
}
############# สิ้นสุดบล็อก 4 ######################
เดอะ ที่ตั้ง /ว
บล็อกนำมาจากเอกสาร laravel websockets แต่บล็อกตำแหน่งนี้ให้ข้อผิดพลาด 404 ไม่พบ แต่การกำหนดค่า nginx นี้ใช้ไม่ได้ โครงการเว็บไซต์ laravel ของฉันทำงานได้ดีบน localhost
แก้ไข
นี่คือผลลัพธ์ของ lsof -i :80,443,6001
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
php 414490 รูท 5u IPv4 5974385 0t0 TCP *:x11-1 (ฟัง)
php 414490 รูท 6u IPv4 5991457 0t0 TCP localhost.localdomain:x11-1->localhost.localdomain:35684 (สร้างแล้ว)
nginx 415533 รูท 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415533 รูท 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415534 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415534 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415535 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415535 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415536 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415536 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415537 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415537 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415538 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415538 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415539 www-data 6u IPv4 5990824 0t0 TCP *:https (ฟัง)
nginx 415539 www-data 7u IPv4 5990825 0t0 TCP *:http (ฟัง)
nginx 415539 www-data 8u IPv4 5985866 0t0 TCP linux:https->157.42.56.21:55728 (สร้างแล้ว)
nginx 415539 www-data 12u IPv4 5985868 0t0 TCP localhost.localdomain:35684->localhost.localdomain:x11-1 (สร้างแล้ว)