Laravel的nginx配置文件学习

504 阅读1分钟

步骤

配置文件

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模型
}