Forge supports provisioning several different types of servers:
Below, we will discuss each of these server types in more detail.
For reference, here is a breakdown of what is offered by each server type:
Type | Nginx | PHP | MySQL / Postgres / MariaDB | Redis, Memcached | Node.js | Meilisearch |
---|---|---|---|---|---|---|
App Server | ✅ | ✅ | ✅ | ✅ | ✅ | |
Web Server | ✅ | ✅ | ✅ | |||
Database Server | ✅ | |||||
Cache Server | ✅ | |||||
Worker Server | ✅ | |||||
MeiliSearch Server | ✅ | |||||
Load Balancer | ✅ |
Application servers are designed to include everything you need to deploy a typical Laravel / PHP application within a single server. Therefore, they are provisioned with the following software:
Application servers are the most typical type of server provisioned on Laravel Forge. If you're unsure which server type you need, most likely you should provision an application server. As you need to scale your application, you may look at provisioning dedicated servers for services such as your database or caching, but starting with an App server is recommended.
Web servers contain the web server software you need to deploy a typical Laravel / PHP application, but they do not contain a database or cache. Therefore, these servers are meant to be networked to other dedicated database and cache servers. Web servers are provisioned with the following software:
Database servers are intended to function as dedicated MySQL / Postgres / MariaDB servers for your application. These servers are meant to be accessed by a dedicated application or web server via Forge's network management features. Database servers are provisioned with the following software, based on your selections during the server's creation:
Cache servers are intended to function as dedicated Redis / Memcached servers for your application. These servers are meant to be accessed by a dedicated application or web server via Forge's network management features. Cache servers are provisioned with the following software:
Worker servers are intended to function as dedicated PHP queue workers for your application. These servers are intended to be networked to your web servers, do not include Nginx, and are not accessible via HTTP. Worker servers are provisioned with the following software:
Meilisearch servers install Meilisearch to provide a blazingly fast search service to your application. They are intended to be connected to another server, and communicate via a private network.
A Meilisearch server will only display and manage one Site. You cannot create or delete other sites on this server. When connecting to the Meilisearch server from a web or application server, you should connect to it via its private IP address.
Load balancers are meant to distribute incoming web traffic across your servers. To do so, load balancers use Nginx as a "reverse proxy" to evenly distribute the incoming traffic. Therefore, load balancers are only provisioned with Nginx.
Once provisioned you may configure your load balancer to meet your needs.