При отклонении писем, которые каким-либо образом классифицируются как спам, всегда есть вероятность ложных срабатываний. С другой стороны, принимая электронные письма, которые могут быть спамом, и сбрасывая их в папку для спама, владелец почтового ящика может не проверять эту папку и пропустить важное электронное письмо, в то время как отправитель предполагает, что оно было доставлено.
Я считаю идеальным Решением для этого было бы отклонить электронное письмо с точки зрения отправителя, но все же доставить его в папку со спамом.
Мои вопросы: BUT STILL GETTING 404 ERRORS :-(
So i was trying to setup directory listing on my server with nginx, i followed the instructions step-by-step but nothing worked out -- always popping either 403 or 404 errors while permissions are all set to 755...
When i enable autoindex on the root location it worked fine, but when i put it on the "dl/" location, it either shows a 404 when requesting /dl or 403 when requesting /dl/
After i followed @Bryce Larson's steps...403 is gone now only 404 is there...which is still not okay...
# pwd
/root/Downloads/dl
# ls -lha
total 12K
drwxr-xr-x 2 nginx root 4.0K Nov 25 20:01 .
drwxr-xr-x 4 root root 4.0K Nov 26 09:11 ..
-rwxr-xr-x 1 nginx root 26 Nov 25 20:01 blah.txt
Here's the nginx.conf
:
https://0bin.net/paste/he2oIb2OFou4G9Fd#v5qt5M7scM8jlSRkl9B+GepP+PoInAHrfZrJNJ7Ch9U
I'm gonna use 0bin for long code/config etc to save time&effort, plus it's got syntax coloring ;-)
And yeah i've restarted nginx a hundred times just to make sure it takes the new config...so what's wrong now?
Otherwise, how would you configure the nginx server for this purpose? -- your own nginx.conf files are welcomed plz paste it here: https://0bin.net
В конце концов я сам нашел решение X - (
Итак, чтобы указать местоположение
с корнем, вам нужно указать родительский каталог вместо каталога, который вы планируете обслуживать (что теперь довольно очевидно, когда я думаю об этом - это чертов корень!)
Так как в моем примере я должен указать / root / Downloads
с корневым параметром, тогда сервер попытается найти в нем каталог с именем dl
.
Я вспомнил, как пытался таким способом, но проблемы с разрешением, упомянутые @Bryce Larson, могли быть причиной того, что это не удалось.
Вот последний nginx.conf
на тот случай, если людям интересно.
Вывод:
Правильный способ настройки списка каталогов в nginx - это
A. укажите родительский каталог каталога, который ur пытается обслуживать.
B. убедитесь, что разрешения от /
до каталога, который вы пытаетесь обслуживать, установлены как исполняемые, то есть chmod + X -R.
Если вы обслуживаете его из домашнего каталога root, убедитесь, что у каталогов есть разрешение на выполнение для каждого каталога от root (/) до каталога, который вы обслуживаете. По умолчанию root обычно имеет 700 разрешений в своем домашнем каталоге. Разрешения на выполнение в каталогах необходимы для «cd» в этот каталог, что nginx не может сделать, если разрешение на выполнение не разрешено в каталогах для пользователя, под которым работает nginx.
также:
chmod +X -R .
весьма полезен, поскольку он изменяет только права доступа к каталогу, а не файлы, см.: https://www.franzoni.eu/chmod-and-the-capital-x/
Для тех, кто наткнулся на эту ветку, потому что они также получили ошибку 404 (как и я), но не смогли решить ее с помощью приведенного выше решения:
Похоже, что автоиндекс на ;
не работает, если указанный корневой каталог содержит пробелы, даже если они правильно экранированы.
В моем тесте следующее НЕ работало:
server {
listen 80;
servername downloads.myserver.com;
location / {
# notice escaped space character here:
root /mnt/mydrive/test\ test/;
autoindex on;
}
}
Но это работало:
server {
listen 80;
servername downloads.myserver.com;
location / {
# notice no escaped space character here:
root /mnt/mydrive/testtest/;
autoindex on;
}
}
Если кто-нибудь знает, почему nginx не любит пробелы в корневом каталоге, я был бы рад узнать, почему.