ฉันติดตั้งแอปพลิเคชัน Perl บนสแต็ก Ubunti 20.4 LEMP สำเร็จแล้ว และฉันสามารถเข้าถึงได้จาก: http://example.com:5762/login.pl
และ http://example.com:5762/setup.pl
ฉันต้องการติดตั้งและเข้าถึงซอฟต์แวร์ผ่านไดเร็กทอรีย่อยใน ฟู
โฟลเดอร์: example.com/foo
ฉันได้แก้ไขไฟล์คอนฟิกูเรชันแล้ว แต่เมื่อฉันคลิกที่นั่น ฉันพบข้อผิดพลาด "ไม่พบหน้า" เช่น หน้านี้ และฉันไม่สามารถเข้าถึงซอฟต์แวร์ใน URL ไดเร็กทอรีย่อยได้ ไฟล์การกำหนดค่า Nginx ของฉันอยู่ด้านล่าง ฉันพลาดอะไรไปที่จะสามารถเข้าถึงแอปพลิเคชันผ่าน URL ไดเร็กทอรีย่อย: example.com/foo
?
## ไฟล์กำหนดค่า Nginx
# คุณควรดู 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 ;
ฟัง [::]:80 ;
# การกำหนดค่า 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;
รูท /var/www/example.com/html/root;
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
ดัชนี index.php index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
ที่ตั้ง /
{
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
try_files $uri $uri/ /index.php?$args;
}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
#
ตำแหน่ง ~ \.php$
{
รวมตัวอย่าง/fastcgi-php.conf;
#
# # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
# # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
# fastcgi_pass 127.0.0.1:9000;
}
# ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
# เห็นด้วยกับของ Nginx
#
ตำแหน่ง ~ /\.ht
{
ปฏิเสธทั้งหมด
}
## ฉันเพิ่มบล็อกนี้เพื่อเข้าถึงแอปพลิเคชัน Perl ในไดเร็กทอรีย่อย /foo
ที่ตั้ง /fo/
{
รูท /var/www/example.com/html/root;
try_files $uri $uri/ @starman;
}
# ไม่มีไฟล์การกำหนดค่า
ที่ตั้ง @starman
{
# หากคุณเปลี่ยนพอร์ตในไฟล์บริการ Starman ให้เปลี่ยนที่นี่ด้วย
proxy_pass http://localhost:5762;
proxy_set_header โฮสต์ $host;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-ส่งต่อเซิร์ฟเวอร์ $host;
proxy_cookie_path ~^/$ /foo/;
}
}
# การกำหนดค่าโฮสต์เสมือนสำหรับ example.com
#
# คุณสามารถย้ายไปยังไฟล์อื่นภายใต้ไซต์ที่มีจำหน่าย/ และ symlink ที่
# เพื่อเปิดใช้งานไซต์ / เพื่อเปิดใช้งาน
#
#เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
#
# server_name example.com;
#
# ราก /var/www/example.com;
# ดัชนี index.html;
#
# ที่ตั้ง / {
# try_files $uri $uri/ =404;
# }
#}