最近鼓捣nginx时, 涉及到ci框架配置问题,网上查的说实话乱七八糟,我这里总结下两种方式吧,有需要的可以参考下,不合理的地方还请评论指正,多谢。
方式一:
server{
listen 80;
server_name {{项目域名}};
root {{项目目录}};
charset utf-8;
# 这里是正则匹配项目cookie中员工号赋值给request_uid
if ($http_cookie ~* "uid_ssn=([A-Za-z0-9_]*)"){
set $request_uid $1;
}
location / {
index index.php index.html;
}
location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {
root {{项目目录}};
allow all;
}
# $fastcgi_script_name 正则匹配重新赋值
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
location ~^(.+\.php)(.*)$ {
limit_req zone=commonper burst=50;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
#这里es_access是自定义日志格式 根据自己项目设置即可
access_log logs/es/main.log es_access;
}
}
方式二(推荐):
server {
listen 80;
server_name {{项目域名}};
root {{项目目录}};
charset utf-8;
# 这里是正则匹配项目cookie中员工号赋值给request_uid
if ($http_cookie ~* "uid_ssn=([A-Za-z0-9_]*)"){
set $request_uid $1;
}
location / {
index index.php index.html;
}
location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {
root {{项目目录}};
allow all;
}
location ~^(.+\.php)(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#正则重新赋值:$1->$fastcgi_script_name $2->$fastcgi_path_info
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name
fastcgi_param PATH_INFO $fastcgi_path_info;
# 隐藏index.php需开启
#fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
#这里es_access是自定义日志格式 根据自己项目设置即可
access_log logs/es/main.log es_access;
}
}
知识点: