ฉันค่อนข้างใหม่กับการกำหนดค่า nginx ฉันมีปัญหาบางอย่างกับปัญหาพื้นฐานที่ค่อนข้างสวย ฉันต้องการโฮสต์ไฟล์คงที่บางส่วนที่ / doc (index.html, ภาพบางส่วน ฯลฯ ) ไฟล์จะอยู่ในไดเรกทอรีชื่อ / sites / mysite / proj / doc /
ปัญหาคือว่าด้วยการกำหนดค่า nginx ด้านล่าง nginx พยายามค้นหาไดเรกทอรีที่เรียกว่า "/ sites / mysite / proj / doc / doc" บางทีสิ่งนี้สามารถแก้ไขได้โดยการตั้งค่ารูทเป็น / sites / mysite / proj / แต่ฉันไม่ต้องการที่จะเปิดเผยสินทรัพย์อื่น ๆ (ไม่คงที่) ในไดเรกทอรี proj / และด้วยเหตุผลต่าง ๆ ฉันไม่สามารถย้าย doc / directory จากที่ที่มันอยู่ได้
ฉันคิดว่ามีวิธีใช้กฎการเขียนซ้ำเพื่อแก้ไขสถานการณ์นี้ แต่ฉันไม่เข้าใจทุกส่วนดังนั้นจึงมีปัญหาในการกำหนดกฎ
rewrite ^/doc/(.*)$ /$1 permanent;
ฉันได้รวมตัวอย่างการโฮสต์ไฟล์ไว้ในไดเรกทอรี / sites / mysite / htdocs / static / แล้ว
> vim locations.conf
location /static {
root /sites/mysite/htdocs/;
access_log off;
autoindex on;
}
location /doc {
root /sites/mysite/proj/doc/;
access_log on;
autoindex on;
}
2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"
ใครบ้างมีความคิดว่าฉันจะให้บริการเนื้อหาคงที่นี้ได้อย่างไร
root
แทนเอกสารที่คุณอ้างถึง (ดู "เมื่อสถานที่ตรงกับส่วนสุดท้ายของค่าของคำสั่ง")