您的位置:首页 > 运维架构 > Nginx

[置顶] 如何正确配置 Nginx+PHP

2017-06-14 15:06 225 查看
摘要: 如何正确配置 Nginx+PHP 对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。


如何正确配置 Nginx+PHP








对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。





假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由。


一般这样配置

此时很多教程会教大家这样配置Nginx+PHP:


server {


listen 80;


server_name
foo.com;




root /path;




location / {


index
index.html index.htm index.php;




if (!-e
$request_filename) {


rewrite . /index.php last;


}


}




location ~ \.php$ {


include fastcgi_params;


fastcgi_param
SCRIPT_FILENAME /path$fastcgi_script_name;


fastcgi_pass 127.0.0.1:9000;


fastcgi_index
index.php;


}


}


这里面有很多错误,或者说至少是坏味道的地方,大家看看能发现几个。

我们有必要先了解一下Nginx配置文件里指令的继承关系:

Nginx配置文件分为好多块,常见的从外到内依次是「http」、「server」、「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。






原文链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: