【发布时间】:2015-05-14 00:49:30
【问题描述】:
我有这个问题,我无法决定什么是什么,什么是最好的。希望有人能给我一些解释,以消除我的困惑。
就是这样,我有一个很大的网站。目前在 Yii 框架上运行,我正在将其迁移到 L5 框架。该网站有几个子网站结构,如下例所示:
1) www.example.com
2) www.example.com/{username}
3) explore.example.com
4) explore.example.com/{organization}
5) connect.example.com
6) coin.example.com
7) m.example.com
8) e3.example.com
所以当前的托管方法是使用 1 个项目来托管所有内容。问题来了,如果某个子站点由于某种原因被禁用,则需要停止整个网站,禁用该站点的代码并再次部署整个站点。
回到 L5 框架,我注意到我可以在 laravel 中做同样的事情,也可以使用 routes.php 中的以下路由方法在一个项目中托管所有内容:
Route::group(['domain' => '{account}.myapp.com'], function()
{
Route::get('user/{id}', function($account, $id)
{
//
});
});
同样的问题再次出现,如果要禁用子站点,我需要对禁用站点进行编码并重新部署整个站点。所以我在想是否可以将新项目中的每个子站点作为一个模块托管,这样如果对该子站点进行任何更改,它只会影响该特定模块,而其他模块保持运行。
此外,我还想问一下,如果我将它作为一个单独的项目托管,我的网站需要用户登录才能导航到任何页面或应用程序。那么如何告诉其他模块用户在哪里登录,一切都可以照常进行呢?
当然,最后如果有人有任何其他建议或方法,也请不吝赐教。我的主要动机是:
1) Maximum development flexibility
2) Fail tolerance
3) Sub sites can share the same login with the main website
(You are only require to login at the main page and you will be authorized
to use the rest of the web application)
谢谢。
【问题讨论】: