Заставьте Nginx следовать символическим ссылкам

28

Nginx не следует по символическим ссылкам. Я получаю ошибку 404. В моем каталоге у меня есть эта ссылка:

lrwxrwxrwx  1 root root    48 Sep 23 08:52 modules -> /path/to/dir/

но файлы, хранящиеся в /path/to/dirне найдены.

hellb0y77
источник
Взгляните на nginx.org/en/docs/http/…
Энди,
2
ОК, я решил с disable_symlinks off;. Благодарность!
hellb0y77
Нет проблем. Хорошего дня!
Энди
Пожалуйста, либо введите свое решение в качестве ответа и примите его (это справедливое поведение здесь), либо в другом месте удалите свой вопрос.
leonbloy
Есть другие идеи? У меня возникла эта проблема, я попытался отключить disable_symlinks; в моем conf (хотя это на самом деле по умолчанию в любом случае), и ничего не работает.

Ответы:

38

Я вставил disable_symlinks off;в мой nginx.conf, и я решил, работает отлично!

http {
    disable_symlinks off;
}
hellb0y77
источник
Я получил nginx: [emerg] unknown directive "disable_symlinks" in /usr/local/etc/nginx/nginx.conf:22после этого. Я использовал nginx/1.8.0на Mac OS X.
замороженное пламя
2
@ frozen-пламя disable_symlinksбыло добавлено в версии 1.1.15 ( см. документацию ), так что должно было сработать. Вы уверены, что были на 1.8.0, и что это было в разрешенном контексте (http, сервер или местоположение)?
Вилле
2
Контекст для использования disable_symlinks:http, server, location
Thiago Pereira
1

Я нашел решение в этом посте .

Более конкретно, эти строки:

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
Джонатан Мартинс
источник
1

Используйте опцию 'bind', монтируя папки =)

sudo nano /etc/fstab

Тип:

/path/where/my/big/files_dir /var/www/myhost/media_dir bind defaults,bind 0 0

(без символических ссылок и не забудьте перезапустить VDS / CPU)

phpWebStudio
источник