如果您使用的是 Apache HTTPd,则有两种选择。
假设您已将前端和后端目录复制如下:
/var/www/yourappname/api/ 下的后端(假设为 Laravel 5.x)
/var/www/yourappname/frontend/下的前端
您可以使用app.yourdomain.com 访问您的应用。 (出于安全和性能原因,我通常更喜欢 www.yourdomain.com 作为单独的服务器/Apache 实例)。
1.两个子域
有两个子域指向相同的 IP 地址,例如 app.yourdomain.com 用于前端,api.yourdomain.com 用于 Laravel 后端。在您的 Apache 配置中创建两个虚拟主机,并按如下方式记录根目录
对于api.yourdomain.com
/var/www/yourappname/api/public
对于app.yourdomain.com
/var/www/yourappname/frontend/
您要包含在前端应用程序中的后端基本 URL 将是 api.yourdomain.com/
优点:如果您希望将来在两个不同的 Apache 实例或单独的服务器上拆分前端和后端,您可以轻松做到。此外,前端是静态内容,因此可以使用其他低成本选项(如基于 S3 的站点)提供服务。
警告:您必须处理 CORS (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) 问题。此外,您将需要两个 SSL 证书或多域证书或通配符 SSL 证书。
我更喜欢这个选项,考虑到未来的负载,我已经在我的一个设置中使用了这个选项。
2。单域和别名
设置文档根为
/var/www/yourappname/frontend
添加别名如下(http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias)
Alias "/api/" "/var/www/yourappname/api/public/
您要包含在前端应用程序中的后端基本 URL 将是 app.yourdomain.com/api/
(我尚未在我的设置中验证这一点)
优点:你有一个域,并且需要一个 SSL 证书。
警告:所有命中都将在同一个 Apache 服务上,因此难以分离计算密集型 API 请求和静态内容的负载。
注意:无论哪种情况,我都指向了 Laravel 框架的“public”目录,以避免将 Laravel 的配置和其他目录暴露给外界。