码迷,mamicode.com
首页 > 其他好文 > 详细

nginx File not found 错误

时间:2018-10-23 17:56:05      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:roo   关注   有一个   公众   ati   bsp   jpg   ted   地址   

一台slb转发请求到三台机器,分别装了nginx php.

三台机器配置相同,部署了两个项目。

访问https://deom.com/jiaoyin_fnt/app/manage/view/login.php 正常,三台机器都没问题,nginx日志正常。

访问 https://demo.com/jiaoyin_diaries_fnt/app/manage/view/login.php 三次中成功一次,其他两次请求会导致下载该页面。

解决过程:

新建测试文件  jiaoyin_diaries_fnt/app/manage/info.php 访问正常

新建测试文件  jiaoyin_diaries_fnt/app/manage/view/info.php 访问失败,三次成功一次

更改/view/ 为test 再访问,也是正常。

查看selinux关闭状态,修改777权限给jiaoyin_diaries_fnt

nginx 报错日志提示

2018/10/23 16:11:43 [error] 26959#0: *17897 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: jjcfh.sogood360.com, request: "GET /jiaoyin_diaries_fnt/app/manage/view/info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "127.0.0.1"

最后问题解决:

这个配置中有很多不合理的地方,其中一个明显的问题就是root指令被放到了location / 块。如果root指令被定义在location块中那么该root指令只能对其所在的location生效。其它locaiont中没有root指令,像location /images块不会匹配任何请求,需要在每个请求中重复配置root指令来解决这个问题。因此我们需要把root指令放在server块,这样各个location就会继承父server块定义的$document_root,如果某个location需要定义一个不同的$document_root,则可以在location单独定义一个root指令。

另一个问题就是fastCGI参数SCRIPT_FILENAME 是写死的。如果修改了root指令的值或者移动文件到别的目录,php-fpm会返回“No input file specified”错误,因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改SCRIPT_FILENAME配置如下:

location~.php${
try_files$uri=404; 拦截不存在的文件
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME

 

 

上面的配置会检查.php文件是否存在,如果不存在,会返回404页面。

 
除非注明,本站文章均为: nginx.cn原创,转载请注明本文地址: http://www.nginx.cn/562.html

--完--

 

 
分类:nginx标签:
评论 (23)Trackbacks (5)发表评论Trackback
 
  1. 2018年3月21日06:31 | #1
     

    感谢。

     
  2. 技术分享图片
    aaa
    2018年1月25日17:25 | #2
     

    感谢

     
  3. 技术分享图片
    hello
    2017年9月19日21:39 | #3
     

    感谢

     
  4. 技术分享图片
    Lyon
    2017年4月12日17:26 | #4
     

    牛鼻

     
  5. 技术分享图片
    gz
    2017年2月24日14:53 | #5
     

    狂赞。。。很不错呢,,讲的十分到位,,按照你说的来,解决了问题

     
  6. 2016年4月1日10:17 | #6
     

    怒赞

     
  7. 技术分享图片
    Lv.4
    2016年3月2日20:42 | #7
     

    帮助解决了问题!!!!!抛出异常的感谢!!!!

     
  8. 技术分享图片
    123
    2016年1月5日14:08 | #8
     

    感谢

     
  9. 2015年1月1日17:38 | #9
     

    非常感谢,解决了我的问题 技术分享图片

     
  10. 2014年5月13日19:06 | #10
     

    找了好多, 看了你的才知道到底是什么问题 谢谢

     
  11. 2014年4月25日20:24 | #11
     

    还有一个可能是权限问题 php-fpm没有打开指定路径文件的权限

     
    • 2014年4月27日10:05 | #12
       

      技术分享图片

       
    • 技术分享图片
      euii
      2014年7月28日17:44 | #13
       

      多谢,因为看了你这一条的消息,才让我解决了问题。

       
    • 技术分享图片
      john
      2015年6月12日22:23 | #14
       

      很好,你的这条答案应该被作者采纳。解决了我的问题。

       
  12. 技术分享图片
    hizzx
    2014年2月10日17:02 | #15
     

    谢谢你,

    感觉你分享这个信息,解决了我的问题。

    再次感谢。

     
  13. 2014年1月4日13:40 | #16
     

    真心赞,直指问题所在,帮我解决了,多谢!

     
  14. 2013年12月9日00:03 | #17
     

    我的文件真实存在的啊,还说找不到

     
  15. 技术分享图片
    WilliamHu
    2013年11月24日11:20 | #18
     

    这个很赞!

     
  16. 技术分享图片
    xiaoxin
    2013年9月21日16:42 | #19
     

    谢谢,解决了我的问题。

     
  17. 技术分享图片
    delphi
    2013年7月5日10:05 | #20
     

    我的问题是file not found 采用了:一个问题就是fastCGI参数SCRIPT_FILENAME 是写死的。如果修改了root指令的值或者移动文件到别的目录,php-fpm会返回“No input file specified”错误,因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改SCRIPT_FILENAME配置如下:

    解决了我的问题啊,

     
  18. 技术分享图片
    jiang
    2013年6月3日08:38 | #22
     

    谢谢。。。非常感谢

     
  19. 2013年3月2日16:26 | #23
     

    网络中那么多, 你是讲得最清楚, 最明白的

     
 
 
 
 

nginx File not found 错误

标签:roo   关注   有一个   公众   ati   bsp   jpg   ted   地址   

原文地址:https://www.cnblogs.com/maoxianfei/p/9837524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!