Laravel部署流程和部署优化思路

简介: Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。

Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。


Laravel的部署


前言


当你准备部署你的 Laravel 应用到生产环境时,请确保几个重要的注意点以保证你的应用能尽可能高效的运行。本文中我们将会覆盖几个重点来确保你的 Laravel 应用部署得当。


服务器配置


Nginx


如果你想要部署你的应用到 Nginx 服务器上,你可能会用到下面这个配置文件作为一个范本来配置你的 Web 服务器。这个文件很可能需要根据你的服务器配置来做一些自定义的修改。如果你需要协助来管理你的服务器,可以考虑使用 Laravel


Forge:


server {
    listen 80;
    server_name example.com;
    root /srv/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.php;
    charset utf-8;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    error_page 404 /index.php;
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}


优化


自动加载器优化


当你准备部署应用到生产环境时,你应该对 Composer 类的自动加载映射进行优化,使得 Composer 可以很快找到指定类的正确的加载文件。


composer install --optimize-autoloader --no-dev


技巧:为了优化自动加载器,你应该确保你的项目代码管理从库中包含了 composer.lock 这个文件。当你的项目中包含了 composer.lock 文件,便可以很快地安装项目中需要的依赖项。


优化配置加载


当你准备部署应用到生产环境时,你应该部署过程中运行 config:cache Artisan 命令:


php artisan config:cache


该命令会合并所有的 Laravel 配置文件到一个缓存文件,这将极大程度上减少框架加载配置值时对文件系统的访问次数。


注意:如果你在部署过程中运行了 config:cache 命令,你应该确保你仅从配置文件中调用 env 函数。一旦配置被缓存,.env 文件将不再加载并且 env 方法将会返回 null。


优化路由加载


如果你在构建一个拥有大量路由的大型应用,你应该确保你在部署的过程中执行 route:cache:


php artisan route:cache


这个命令将会把所有的路由注册所见到一个缓存文件的单个函数调用,从而在注册上百个路由时能够提高路由注册的性能。


优化视图加载


当你往生产环境中部署应用时,你应该确保在部署过程中运行 view:cache:


php artisan view:cache


这个命令预编译所有的 Blade 视图,因此不会按需编译,此举提高了每个返回视图的请求的性能。


使用 Forge / Vapor 部署


如果你还没有准备好管理自己的服务器配置,或者不熟悉对强大的 Laravel 应用所需要的各种各样的服务的配置,Laravel Forge 是一个不错的选择。 Laravel Forge 能够在各种基础设施提供商(如:DigitalOcean,Linode,AWS 等)上创建服务器。 此外,Forge 能够安装和管理强大的 Laravel 应用所需的各种各样的工具,比如:Nginx, MySQL,Redis,Memcached,Beanstalk 等。


Laravel Vapor


如果你想要在 Laravel 应用中使用完全的 serverless,自动扩展的部署平台,可以参考 Laravel Vapor。Laravel Vapor 是一个 AWS 为 Laravel 提供的一个 serverless 部署平台。在 Vapor 上启动你的 Laravel 基础架构,爱上 serverless 的可扩展简单性。Laravel 的创建者对 Laravel Vapor 进行了微调,可以与框架无缝协作,这样您就可以像以前一样继续开发 Laravel 应用程序。


相关文章
|
23天前
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
50 5
|
5月前
|
设计模式 安全 关系型数据库
PHP开发涉及一系列步骤和技术
【7月更文挑战第2天】PHP开发涉及一系列步骤和技术
140 57
|
4月前
|
缓存 前端开发 应用服务中间件
看看高手是怎么部署前端代码的
【8月更文挑战第8天】从简单的前端项目部署开始,构建dist文件夹并通过Nginx代理接口请求,以解决跨域问题。为进一步优化大型系统的性能及稳定性,需采用高级部署策略。例如,利用CDN分发静态资源并采用缓存控制减少带宽消耗,通过文件哈希值更新URL确保资源按需刷新。面对大规模部署挑战,采用非覆盖式发布方法避免样式错乱风险,并通过灰度部署逐步验证新版功能,确保服务平稳过渡。借助Nginx实现流量切分,可灵活调整新旧版本流量比例,有效降低上线风险。
71 3
|
4月前
|
存储 API 数据库
Django后端架构开发:构建在线云媒资系统思路解析
Django后端架构开发:构建在线云媒资系统思路解析
48 0
|
5月前
|
JSON Go C++
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
49 1
|
5月前
|
前端开发
若依部署,部署常见流程之先部署网页的后端系统,让自己的前端能够看到内容,先部署后端,让前端在本地跑起来-----吃饱了撑死了大佬建议,正确的部署流程
若依部署,部署常见流程之先部署网页的后端系统,让自己的前端能够看到内容,先部署后端,让前端在本地跑起来-----吃饱了撑死了大佬建议,正确的部署流程
|
自然语言处理 安全
Web3.0钱包系统开发(开发功能)/指南教程/步骤流程/方案设计/项目逻辑/规则玩法/案例源码
Wallet type selection: Determine the type of wallet, which can be a browser plugin wallet, mobile application wallet, or online web wallet. The choice of wallet type should be based on the target user group and usage environment.
|
7月前
|
前端开发 JavaScript 应用服务中间件
部署前端项目到服务器过程详解
部署前端项目到服务器过程详解
304 0
dapp只涨不跌项目系统开发稳定版/步骤需求/逻辑方案/案例项目/源码指南
The development steps of a DApp smart contract system that only rises but not falls may include the following:
|
小程序 IDE 开发工具
小程序从零开始开发到上线的过程
小程序从零开始开发到上线的过程
160 0