前言:
很多用fastcgi的企业,都喜欢把nginx 如此配置
server {
listen 80;
server_name test.com;
index index.html index.php;
root /home/www;
include other.conf;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
但这样的配置只支持那种 所有动态文件,均在 /home/www 目录下的结构
-----------------------------------------------------------------
如果现在的域名目录
/home/www/html 静态根目录
/home/www/my 用户动态页面
/home/www/trade 交易动态页面
可以考虑如此配置
server{
listen 80;
server_name test.com;
root /home/www/html;
index index.php index.html;
location /my {
alias /home/www/my;
index index.html;
}
location ~ /my/(?<after_ali>(.*)\.(php|php5)?$) {
root /home/www/my;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root/${after_ali};
}
location /trade {
alias /home/www/trade;
index index.html;
}
location ~ /trade/(?<after_ali>(.*)\.(php|php5)?$) {
root /home/www/trade;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root/${after_ali};
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
}
----------------
其中粗体字部分表示 正则匹配的内容,赋值给 after_ali 变量(仅nginx 1.1以上版本支持)
然后改写script_filename 系统变量,不然默认的话会在
/home/www/trade/trade 下面找动态文件
转载于:https://blog.51cto.com/linuxguy/881568