项目需要在nginx中提供一个配置文件返回接口的信息,于是就添加了location来实现,本以为很简单的操作,结果访问配置文件时一直返回404,nginx的error log中输出:not a directory。

nginx的配置如下所示:

nginx:not a directory

日志中的报错如下:

nginx:not a directory

找了半天没发现有啥问题,在另台测试机器上用同样的配置文件配置,发现没有问题,可以访问。于是从nginx代码中的openat关键字排查,定位在openat这个函数上,貌似它不支持软链接,而碰巧root配置的路径中有一个是软链接。

自测程序:

nginx:not a directory

至此,问题排查清楚,修改root指向一个非软链接的目录即可。

相关文章:

  • 2021-07-29
  • 2022-01-30
  • 2022-12-23
  • 2021-10-19
  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-23
  • 2021-08-18
  • 2021-08-31
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
相关资源
相似解决方案