标签为“Nginx”的页面如下
文章
Nignx+PHP中HTTP请求返回502
Nginx + PHP-FPM 报 502 错误,我想大部分 RD 都遇到过吧。根据报错的频率,可以分为两种情况,间歇性的502和连续性的502。间歇性502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的。连续性502很可能是由于cgi处理时间过长导致超时所致。下面讨论超时相关的参数:
nginx 相关配置:nginx.conf
1 2 3 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; php-fpm相关配置:php-fpm.conf
1 request_terminate_timeout = 10s php 相关配置:php.ini
1 max_execution_time
文章
Nginx配置PATHINFO
最近在学习php,《PHP和MySQL Web开发》零零碎碎的算是看完了,讲了一下基础的东西,对于入门是足够了。前几天开始些项目,是在先前别人的基础上写的,同时有事两个人一起写。完成之后看了看,代码太乱了,包括代码结构和命名规范。遂决定找点着方便的资料。
在网上搜来搜去,找到了篇挺不错的PHP框架(ThinkPHP)教程:http://www.thinkphp.cn/info/155.html 着实还不错,推荐学习PHP的同学看看。
这篇教程的默认环境是wamp的,由于我用的是Nginx,在学习第二篇的时候就遇到了问题。ThinkPHP支持的URL模式:PATHINFO Nginx默认配置是不支持的。本以为是自己ThinkPHP环境配置的问题,后来删了所有的相关文件(我的一贯作风–屡试不爽),重新配置ThinkPHP环境,可是还是同样的报404错误。这样的话只能是Nginx和php配置的问题了。
URL首先是通过Nginx解析的,先从Nginx下手。猜想Nginx是不是不支持ThinkPHP的PATHINFO呢。于是百度一下,便一目了然了。
试了几篇博文的方法,最后终于弄好了。
废话结束
打开Nginx的配置文件nginx.conf
在server中加入一下配置:
location ~ .php {
root d:/ThinkPHP/;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
#pathinfo support
set $real_script_name $fastcgi_script_name;
set $path_info “”;
if ( $fastcgi_script_name ~ “^(.+?.php)(/.+)$”){
set $real_script_name $1;
set $path_info $2;
} fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
需要注意的是那个if判断语句,在(的前后都必须有空格,否则Nginx会报配置语法错误。
文章
Nginx 启动选项
Nginx 命令行参数和信号 选项 -c </path/to/config> 为nginx指定一个配置文件,来代替缺省的
t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
-v 显示nginx 的版本
-V 显示nginx 的版本,编译器版本和配置参数