下面的配置是 ThinkAdmin 框架的 Nginx 配置,thinkphp 项目可以通用。
server {
listen 80;
server_name xxx.com;
root /data/php/xxx/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ @rules;
#if (!-e $request_filename) {
# rewrite ^(.*)$ /index.php?s=/$1 last;
#}
}
location @rules {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
#access_log off;
expires 30d;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
access_log /var/log/nginx/xxx.com.access.log logstash;
error_log /var/log/nginx/xxx.com.error.log warn;
}