Server Types
Learn about the different types of servers you can provision with Forge.
Introduction
Forge supports provisioning several different types of servers:
- Application Servers
- Web Servers
- Worker Servers
- Load Balancers
- Database Servers
- Cache Servers
Below, we will discuss each of these server types in more detail.
Server Types
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 | ✅ |
App Servers
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:
- PHP
- Nginx
- MySQL / Postgres / MariaDB (if selected)
- Redis
- Memcached
- Node.js
- Supervisor
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
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:
- PHP
- Nginx
- Node.js
- Supervisor
Database Servers
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:
- MySQL, MariaDB, or PostgreSQL
Cache Servers
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:
- Redis
- Memcached
Worker Servers
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:
- PHP
- Supervisor
Meilisearch Servers
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
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.