Если вы используете Apache HTTPd, у вас есть два варианта.
Допустим, вы скопировали внешние и внутренние каталоги следующим образом:
Серверная часть (предположительно Laravel 5.x) под /var/www/yourappname/api/
Интерфейс под /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, чтобы избежать раскрытия конфигурации и других каталогов Laravel внешнему миру.
person
Kishan Parekh
schedule
17.07.2018