Nginx不遵循符号链接

时间:2012-09-27 15:00:42

标签: nginx symlink

我在Ubuntu 12.04上安装了nginx。但是,nginx似乎没有遵循符号链接。我知道需要更改配置,但我无法找到进行更改的位置。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:30)

查看nginx docs中的以下配置选项:

  

语法:

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

默认值:disable_symlinks off;

     

上下文:http,服务器,位置

     

该指令出现在1.1.15版本中。

答案 1 :(得分:28)

在我的情况下,nginx已配置为遵循符号链接。但问题是用户nginx无法访问我的主文件,因此指向我主目录的符号链接无效。

实施例

假设我们有符号链接/usr/share/nginx/www/mylink - > /home/u/html

cd /usr/share/nginx/www
mkdir   -p  /home/u/html
sudo ln -sv /home/u/html mylink  # creates mylink -> /home/u/html

授予权限

使用chmodfind提供 r ead和e x ecute权限:

chmod +rx /home/u
chmod +rw /home/u/html
find /home/u/html/php -type d -exec chmod +rx {} +
find /home/u/html/php -type d -exec chmod +w  {} +  # optional

备注:

  1. 权限x名为e x ecute。但是当应用于目录时,此权限允许递归目录树(请参阅Unix modes)。

  2. 命令find ... -exec chmod ...以递归方式更改权限。我们也可以使用命令chmod -R +rx /home/myuser/html,但是这最后一个命令也为所有常规文件提供了执行权限,我们不希望这样。选项-type d仅对目录执行chmod

  3. 如果PHP脚本需要写入数据,则最后一个可选命令会提供写入权限。出于安全原因,尝试将写入权限限制为仅限于所需目录。

  4. 测试

    无需重新启动ngnix,只需在浏览器中按 Ctrl + F5 即可。

    警告:建议不要创建指向主目录的符号链接,因为读/写访问错误或符号链接错误可能会暴露您的数字数据......

    参考: Arch wiki on nginx

答案 2 :(得分:4)

如果olibre的答案无法帮助编辑文件/ etc / nginx / sites-available / default,请将此行添加到您指定服务器根目录的位置。

autoindex on;

保存文件并重启服务器

/etc/init.d/nginx restart