Сервер приложений и веб-сервер на двух разных машинах
Сегодня я размещаю веб-приложение Laravel v4 на MacMini. Почему Mac? Потому что я создал логику приложения в Objective-C (используя мой опыт работы с iOS-разработчиком). Правильный выбор или нет, вопрос не в этом.
Мне интересно знать, как я могу разделить свой веб-сервер и сервер приложений. Например, если я поставлю свой веб-сервер на Linode (или что-то еще), как мне обмениваться данными между веб-сервером и сервером приложений? Есть ли какой-то ресурс, к которому я могу обратиться, чтобы понять, как это сделать?
1 ответ
Предположения
Вот некоторые предположения, которые я делаю:
- Я предполагаю, что Laravel и приложение Objetive-C являются частью одной и той же "системы", и поэтому я просто буду относиться к этому так, как будто вам нужен веб-сервер для отправки запросов в приложение PHP.
- Сервер Linode будет веб-сервером, который отправляет запрос в приложение PHP (Laravel)
Хостинг PHP-приложений
Есть три движущиеся части:
- Веб-сервер (Apache, Nginx)
- Шлюз приложения (PHP-FPM)
- Приложение
Шлюз и код должны находиться на одном компьютере / сервере. Веб-сервер может жить на отдельном компьютере / сервере.
Это означает, что вам понадобится ваш Macintosh для запуска PHP-FPM, который затем может прослушивать удаленные соединения и отправлять их в приложение PHP.
макинтош
Установите php-fpm на свой Mac. Убедитесь, что он может прослушивать удаленные сетевые подключения. Обычно это делается в www.conf
файл в listen
каталог, вы можете прослушивать соединения на удаленном сетевом интерфейсе (независимо от того, какой IP-адрес назначен компьютеру).
Linode
Установите Nginx или Apache и отправьте ему запросы FastCGI для прокси на ваш компьютер Macintosh по IP-адресу компьютера Macintosh (тот, который вы настроили для прослушивания адресов на шаге выше).
Брандмауэры
Возможно, вам потребуется убедиться, что брандмауэры на обоих концах разрешают входящие / исходящие соединения в сетях, используемых для связи друг с другом.