Re: [问题] Joomla hosting in Heroku

楼主: blue3 (啦啦啦)   2014-12-28 00:29:12
你要先了解heroku平台的设计原则
才有办法设计出符合这个平台的应用程式
http://12factor.net/
这是heroku创办人提出的12factor
如果一个应用程式依照这12个原则去设计
那么将可以更容易地被scale或是部署在不同的环境
你的问题解决方式很简单,也是heroku建议的方式
就是所有应用程式相关的设定,都应该透过环境变量的方式去设定
https://devcenter.heroku.com/articles/config-vars
像是数据库,或是add-on的设定
而dyno本身的设计必须是stateless的
也就是不应该有任何的状态资料(session, file等)被储存
file应该透过第三方平台去存取
session则应写入数据库或是透过像memcached来做分布式快取
这是因为dyno的设计,是建构在硬件可能随时坏掉的前提之上
因此stateless的特性,让dyno不储存任何状态
可以在dyno crash的时候,重新启动一个dyno来服务
另外,修正一下你的说法,
并不是一个request进来才会产生一个dyno,
dyno在你push code到heroku时就会产生了
如果你只有一个dyno, 才会有sleep的效应
也就是你说的,太久没用被卸载来减轻平台本身的负担
当"第一个"request进来,才会再产生一个dyno
如果你有两个dyno, 就不会sleep
但是两个dyno的状况下,就要让session可以在不同dyno之间同步
你遇到的不是平台的问题 而是它的设计就是如此
※ 引述《jimmytzeng (jimmytseng)》之铭言:
: 各位大大好
: 小弟最近再使用Heroku 进行Jommla的布署
: 但是遇到一些问题
: 因为Heroku为了减少server负载的使用量,设计成当有request进来时,才会产生一个DYNO
: (好像再google cloud platform里叫作instance)
: 而第一次再这个DYNO进行Joomla的初始化的时候(就是再web上进行设定那步骤), 其设定档(configruation.php)似乎只储存在这个DYNO
: 当这个DYNO随着时间被关闭后, 此设定档或是安装的模组就随着此DYNO的消失而消失...
: 如此当下次DYNO被产生的时候,又要重新一次去进行Joomla的设定....
: 有大大有相关经验解决类似这种问题吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com