Nginx не следующие ссылки

Я установил nginx на Ubuntu 12.04. Однако nginx, похоже, не следует символическим ссылкам. Я понимаю, что для этого требуется изменение конфигурации, но я не могу найти, где это сделать. Любая помощь приветствуется.

3 ответов


посмотрите на следующий параметр конфигурации из nginx docs:

синтаксис:

disable_symlinks off;
disable_symlinks on |
if_not_owner [from=part];

по умолчанию: disable_symlinks off;

контекст: http, сервер, местоположение

эта директива появилась в версии 1.1.15.


в моем случае nginx был уже настроен для следования символическим ссылкам. Но символическая ссылка указывала на мой домашний каталог и nginx не имел разрешения на доступ к своим файлам.

в этом примере ссылка выглядит так: /usr/share/nginx/www/mylink ->/home/myuser/html

cd /usr/share/nginx/www
mkdir   -p  /home/myuser/html
sudo ln -sv /home/myuser/html mylink
«mylink» -> «/home/u/html»

дать почитать (r) и выполнить (x) разрешения с помощью chmod следующим образом:

chmod +rx    /home/myuser
chmod +rx -R /home/myuser/html

разрешение на запись также может быть дано, если скрипты требуют записи данные:

chmod +w  -R /home/myuser/html/myPHP

нет необходимости перезапускать ngnix, нажмите клавишу [CTRL+F5] в вашем браузере.

внимание: не рекомендуется создавать символические ссылки, указывающие ваше домашнее пространство, потому что ошибка в доступе для чтения/записи или других символических ссылках может привести к дырам безопасности в ваших цифровых данных!

ссылки: Arch wiki


если ответ olibre не помогает редактировать файл /etc/nginx/sites-available / default и добавить эту строку, где вы указали корневой каталог сервера.

autoindex on;

сохраните файл и перезапустите сервер

/etc/init.d/nginx restart