Nginx 常见问题汇总

1,062 阅读2分钟

HTTP 状态码简介

状态码 说明
1xx 消息——请求已被服务器接收,继续处理
2xx 成功——请求已成功被服务器接收、理解、并接受
3xx 重定向——需要后续操作才能完成这一请求
4xx 请求错误——请求含有词法错误或者无法被执行
5xx 服务器错误——服务器在处理某个正确请求时发生错误
100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。

200~299:表示成功接收请求并已完成整个处理过程。常用200

300~399:为完成请求,客户需进一步细化请求。
    eg. 请求的资源已经移动一个新地址、常用302(意味着你请求我,我让你去找别人)
    307和304(我不给你这个资源,自己拿缓存)
    
400~499:客户端的请求有错误,常用404(意味着你请求的资源在web服务器中没有)
    eg. 403(服务器拒绝访问,权限不够)
    
500~599:服务器端出现错误,常用500

Q1. Nginx 403 & Access denied

访问页面一直出现Access denied; 而Nginx的错误日志则一直是”Access to the script ‘xxx’ has been denied (see security.limit_extensions)…”

1. 在你php-fpm配置文件php-fpm.conf中设置security.limit_extensions 为 .php 或 .php5,
或者其他任何与你环境一致的后缀名。 对于开发环境下的一些用户来说,
完全移除所有security.limit_extensions的值或设置为FALSE,能够保证可以正常工作.

2. 在你的nginx配置文件中设置fastcgi_pass 为你的socket地址
(e.g. unix:/var/run/php-fpm/php-fpm.sock;), 
替代ip地址:端口这种方式(127.0.0.1:9000).

3. 检查你的SCRIPT_FILENAME, fastcgi_param 并根据你文件的地址来设置它们.

4. 在你的nginx配置文件中包含有fastcgi_split_path_info ^(.+\.php)(/.+)$;
则所有其他的对应fastcgi参数也都应该在location块中定义;

5. 在你的php.ini配置文件中,设置cgi.fix_pathinfo=1

原文链接 www.qetee.com/exp/php/pha…