Nginx yapılandırmalarında oldukça yeniyim. Oldukça basit bir problemle ilgili zorluk yaşıyorum. / Doc'de bazı dizin dosyaları barındırmak istiyorum (index.html, bazı resimler vb.). Dosyalar / sites / mysite / proj / doc / adlı bir dizinde bulunur.
Sorun şu ki, aşağıdaki nginx yapılandırmasında, nginx "/ sites / mysite / proj / doc / doc" adlı bir dizini aramaya çalışır. Belki de bu, kök / sites / sitem / proj / olarak ayarlanarak düzeltilebilir, ancak proj / dizindeki diğer (statik olmayan) varlıkları potansiyel olarak ortaya çıkarmak istemiyorum. Ve çeşitli nedenlerle, doc / dizini olduğu yerden gerçekten taşıyamıyorum.
Bu durumu çözmek için Yeniden Yazma kuralını kullanmanın bir yolu olduğunu düşünüyorum, ancak tüm parçaları gerçekten anlamıyorum, bu yüzden kuralı formüle etmekte zorluk çekiyorum.
rewrite ^/doc/(.*)$ /$1 permanent;
Ayrıca / sites / mysite / htdocs / static / dizininden dosya barındırma çalışma örneği de ekledim.
> 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"
Herkes bu statik içerik sunma hakkında nasıl bir fikir var mı?
root
yerine, atıfta bulunduğunuz dokümana göre kullanmak daha iyidir (bkz. "Konum, yönerge değerinin son kısmıyla eşleştiğinde")