本文转自:https://segmentfault.com/a/1190000007929783

切换到产品模式

php magento deploy:mode:set production

执行以上指令需要等一段时间,在production mode下效率会大大提升,但static不再自动生成,每次修改了JS CSS都需要用指令生成static。

以下是我常用的修改上线指令

cd ~/www
rm -rf ./var/cache/
rm -rf ./var/generation/
rm -rf ./var/log/
rm -rf ./var/maps/
rm -rf ./var/page_cache/
rm -rf ./var/tmp/
rm -rf ./var/view/
rm -rf ./var/view_preprocessed/
php bin/magento setup:di:compile
php bin/magento setup:upgrade
php bin/magento cache:flush
rm -rf ./pub/static/*
php bin/magento setup:static-content:deploy

请求数尽可能少

浏览器允许并发下载数每个域名一般是6个,请求数太多不能充分利用带宽资源。

为了减少请求数,后台以下设置都需要打开
Merge JavaScript Files
Minify JavaScript Files
Merge CSS Files
Minify CSS Files

尽量使用less做样式,不少人为了方便从外部引入css,这样会让css无法进行Merge。

增加一个域名来访问资源文件也可以间接加大允许并发下载数,例如static.domain.com, media.domain.com
对应的后台设置:
Base URL for Static View Files = https://static.domain.com/pub/static/
Base URL for User Media Files = https://media.domain.com/pub/media/

使用CDN

magento有大量的产品图片,使用CDN可以很好缓解服务器的带宽压力,而且CDN用的域名与主域名不同,不受单个域名的允许并发下载数限制。后台设置Base URL for Static View Files与Base URL for User Media Files来使用CDN。

mail

上线后必须测试send mail功能是否正常,线上环境与开发环境不一样可能会影响邮件功能。为了稳定发出邮件,建议使用SMTP,可以安装Emizentech_CustomSmtp实现。但免费的SMTP都不稳定,目前用过mandrill比较好,免费可以发出2000封,需要安装Ebizmarts_Mandrill。

设置cronjob

crontab -u <Magento file system owner user name> -e
* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log

参考 http://devdocs.magento.com/gu...

web测试工具

https://gtmetrix.com

[转]magento2项目上线注意事项 切换到产品模式的更多相关文章

  1. Linux 项目上线管理 MAVEN + expect 一台机器管理所有机器的应用程序

    一.目的 在一台服务器上面管理所有机器的应用程序. 设想是通过一条命令能够知道所有应用程序是否running 如果not running 查看具体项目的log 跟踪具体原因,程序问题汇报相关负责人 二 ...

  2. django项目上线环境部署

    django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...

  3. 玩转Django2.0---Django笔记建站基础十二(Django项目上线部署)

    第十二章 Django项目上线部署 目前部署Django项目有两种主流方案:Nginx+uWsGI+Django或者Apache+uWSGI+Django.Nginx作为服务器最前端,负责接收浏览器的 ...

  4. Vue项目上线环境部署,项目优化策略,生成打包报告,及上线相关配置

    Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用来方便快速地搭建易于扩展的网络应用.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量 ...

  5. 自学linux——16.LAMP项目上线流程

    LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ①    下载nginx 网页下载https://nginx.org/en/downlo ...

  6. HLS直播和时移项目上线

    兄弟姐妹们: 天翼视讯的高清HLS直播和时移项目上线,测试观看地址为:http://118.85.192.228/live/,同时支持移动终端和pc终端.移动终端支持ios client和androi ...

  7. 项目上线后出现Bug,该如何处理?

    项目在上线之后又出现了Bug,这让很多测试人员和开发人员头痛.但很多时候线上Bug普遍地存在,不可避免. 任何项目都存在未发现 Bug  和 已发现 Bug  两种情况,不存在没有 Bug的情况. 即 ...

  8. centos 项目上线shell脚本

    最近在弄项目上线,然后写了个上线,备份,回滚的shell脚本 上线可根据自己公司项目做相关操作,备份回滚可修改目录则可实现 主管要求用shell写,那就用shell写吧 本想Python写更好的 哈哈 ...

  9. Yum项目上线实战 (网站运维)-Linux从入门到精通第十一天(非原创)

    文章大纲 一.编译安装与卸载Nginx二.关于LAMP三.LAMP环境部署四.学习资料下载五.参考文章   一.编译安装与卸载Nginx Nginx:是一款比较流行的web服务器软件,类似于Apach ...

随机推荐

  1. MCU_头文件编写

    头文件中一般放一些重复使用的代码,如:常量.变量.宏等的定义,函数的声明.当使用#include语句引用头头文件时,相当于将头文件中的内容复制到#include处. 头文件一般形式: #ifndef  ...

  2. centos7 修改默认启动级别

    systemctl set-default multi-user.target      设定默认为字符界面,也就是3 systemctl set-default graphical.target  ...

  3. ASP.NET Core2利用MassTransit集成RabbitMQ

    在ASP.NET Core上利用MassTransit来集成使用RabbitMQ真的很简单,代码也很简洁.近期因为项目需要,我便在这基础上再次进行了封装,抽成了公共方法,使得使用RabbitMQ的调用 ...

  4. spark Graph 的PregelAPI 理解和使用

    spark Graph 的PregelAPI 理解和使用 图本质上是一种递归的数据结构,可以使用Spark GraphX 的PregelAPI接口对图数据进行批量计算, 之前一直不怎么理解Pregel ...

  5. FFmpeg4.0笔记:file2rtmp

    Github: https://github.com/gongluck/FFmpeg4.0-study.git #include <iostream> using namespace st ...

  6. SignalR2简易数据看板演示

    软件环境: 1.vs2015.windows7..net4.5 演示说明: 当点击按钮的时候,柱状图数值加1并实时变化 1.首先打开vs2015创建一个mvc项目,并安装SignalR2,具体操作可参 ...

  7. 程序猿的日常——Mybatis现学现卖

    最近有一个小项目需求,需要用spring mvc + mybatis实现一个复杂的配置系统.其中遇到了很多不太常见的问题,在这里特意记录下: 主要涉及的内容有 事务 多表删除 插入并返回主键 1 sp ...

  8. Synchronzied(内置锁)

    原文地址:深入JVM锁机制1-synchronized 1. 线程的状态与转换 当多个线程同时请求某个对象监视器时,对象监视器会设置几种状态用来区分请求的线程: Contention List:所有请 ...

  9. Postgres 的 Array 类型

    mysql 不支持 Array 类型 一.Postgres 原生SQL 适用场景:可以用于实现贴标签功能 1.定义 CREATE TABLE "Students" ( name V ...

  10. EF6使用Mysql,踏过的那些坑

    在vs2013中使用mysql连接entityFramework经常会遇到这个问题:您的项目引用了最新实体框架:但是,找不到数据连接所需的与版本兼容的实体框架数据提供程序.请退出此向导,安装兼容提供程 ...