下面的配置是 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; }