共计 1556 个字符,预计需要花费 4 分钟才能阅读完成。
常用 nginx 对于 web 项目配置整理,做个笔记。
php web 项目配置:
server {
listen 80;
listen [::]:80;
# 设置上传最大为 5MB
client_max_body_size 5m;
root /srv/www/wechat/public;
index index.html index.php;
server_name example.com;
location / {try_files $uri $uri/ =404;}
# 支持 php
location ~ \.php$ {
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
fastcgi_index index.php;
include fastcgi.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {deny all;}
}
php web 项目配置 支持 laravel、symfony、Yii2 单入口:
...
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404; # 注释上面这句,使用下面这句
try_files $uri $uri/ /index.php?$query_string;
}
...
php web 项目配置 支持 ThinkPHP
...
location ~ \.php$ {
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info; # ThinkPHP 依赖 PATH_INFO 这个环境变量
fastcgi_index index.php;
include fastcgi.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
...
php web 项目配置 禁止访问上传目录下的 php 文件:
...
# 这个块 location 要放在 location ~ \.php$ 之前
location ~ ^/uploads/.*\.php$ { # 所有 /uploads 文件目录下的.php 文件都被禁止访问
#deny all; # 返回 403
return 404; #返回 404
}
...
原文连接:
常用 nginx web 配置
正文完