步骤
配置文件
server {
#监听 HTTP 协议默认的【80】端口
# HTTPS 协议默认的端口是 443
listen 80;
# 绑定主机名
server_name example.com;
# 服务器站点根目录 [/example.com/public]
root /example.com/public;
# 添加几条有关安全的相应头;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1;mode=block";
add_header X-Content-Type-Options "nosniff";
#站点默认页面;可指定多个,将顺序查找。
index index.html index.htm index.php;
# 指定字符集 UTF-8
# Laravel 默认重写规则;删除将导致 Laravel 路由失效的 Nginx 404
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 关闭[/favicon.ico] 和 [/robots.txt] 访问日志
# 并且及时它们不存在,也不写入错误日志
location = /fvaicon.ico {access_log off;log_not_found off;}
location = /robots.txt {access_log off;log_not_fount off;}
# 将【404】错误交给【/index.php】处理
error_page 404 /index.php
# uri 符合正则表达式 [\.php$] 的请求将进入此配置
location ~\.php$ {
# fastcgi_pass 127.0.0.0:9000
# 配置文件可以是 IP:端口,也可以是 Unix socket
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# 配置FastCGI 主页
fastcgi_index index.php;
fastcgi_buffers 15 16kb; # 设置buffer_size 个数
fastcgi_buffer_size 32k; # 设置大小
fastcgi_read_timeout 600; # 设置cgi链接时长
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
#引入更多默认的 FastCGI 参数
include fastcgi_params;
}
#以上配置将所有的 URI 以 .php 结尾的请求,全部交给PHP-FPM 处理
# 除符合正则表达式的 [/\.(well-known].*] 之外的 URI,全部拒绝访问
location ~/\.(?!well-known).* {
deny all;
}
}
参考文章:https://learnku.com/articles/25861#reply198524
nginx 其他配置学习
events {
accept_mutex on; # 设置连接序列化,防止进群现象发生,默认为 on
multi_accept on; # 设置一个进程是否同事接收多个网络链接,默认为 off
work_connections 1024; # 设置工作线程的最大连接数
use epoll; # 使用epoll的I/O模型
}