Install Apache In Freenas Jail Host
Learn how to install a MariaDB server on FreeNAS. Configure ZFS datasets to store the data and log files and optimize the throuput of your databases. You can configure the server to accept connections locally or from remote hosts over the network.
Creating ZFS datasets
- Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un.x-like operating systems. It only takes a minute to sign up.
- Many users install a variety of web applications in jails on their FreeNAS servers, and often those applications run on non-standard ports like 6789, 8181, 7878, etc. These port numbers are far from intuitive, and the applications often either don't implement HTTPS at all, or make it difficult to configure.
You can store the database files in specific ZFS datasets on your FreeNASserver, which can provide some performance benefits. For example, you can createa dataset with a record size of 16 kilobytes, which matches the default pagesize used in MariaDB.
The open source Apache HTTP Server is the most widely used web server. FreeBSD does not install this web server by default, but it can be installed from the www/apache24 package or port. This section summarizes how to configure and start version 2.x of the Apache HTTP Server on FreeBSD. Install the Transmission plugin. The first step is to open up FreeNAS GUI and navigating to Plugins in the left menu. If you want to change the default pool for Plugins and Jail storage click the gearwheel icon and select your preferences. This is where Transmission will be stored. This is also the default location for downloaded files, but.
In this guide, you create datasets for the corresponding innodb_data_home_dir
,innodb_log_group_home_dir
, and datadir
properties of MariaDB. To create thedatasets, run the following commands in aFreeNAS shell:
- Create the
tank/innodb_data
dataset: - Create the
tank/innodb_log
dataset: - Create the
tank/datadir
dataset:
Note that these are the settings that we recommend for good balance ofperformance improvement and minimize the risk of data corruption. You shouldevaluate the right settings for your workloads. To further improve performance,consider moving the ZFS Intent Log (ZIL) to a fast device, such asa low-latency SSD.
Preparing the jail
The instructions in this post host the app server in a jail on FreeBSD. To learnwhy we use jails for this purpose, check theApplication server section ofour self-hosted architecture post.
In this section, you’ll perform the following tasks:
- Create a jail.
- Configure networking on the jail.
- Install the prerequisite packages.
Run the commands from a session in your FreeBSD host.
To create a jail:
- Fetch or update the release version of FreeBSD for jail usage:
- Create a jail named
mariadb
:
Install Apache In Freenas Jail Host Access
To configure networking on the jail:
- Configure the IP address. The following example sets the IP address to
192.168.1.123
using a subnet maskof24
bits on theem0
interface. The command uses theCIDR notation. - Configure the default router. The following example sets the default routerto
192.168.1.1
:
Start the jail and open a session to complete the rest of the tasks in thissection:
Install the mariadb104-server package:
Create folders in the jail where you are going to mount the datasets. Assign themysql
user as the owner:
Close the session in the jail so you can mount the datasets from your FreeNASsession:
Mount the datasets on the jail:
- Use the following command to stop the jail:
- Mount the
data
andlog
datasets on the corresponding folders in the jail: - Restart the jail:
Install Drivers Freenas
Configure the service
Open a session on the jail:
Create the /var/db/mysql/my.cnf
file, which should at least declare thefollowing options:
Uncomment the bind-address
option to enable access from other hosts in thenetwork. Otherwise, connections are only accepted from the jail. If you decideto accept connections from other hosts, you should configure access overTLS.
Configure the service startup and start the service:
Run the script to improve the security of the installation:
Testing the installation
To test the installation, open a connection using the following command fromwithin the jail:
After entering the password of the root user, you should see a message similarto the following:
From the MariaDB prompt, you can list the existing databases:
Configuring access over TLS
To configure access over TLS, you need an SSL certificate, such as the onesprovided by Let’s Encrypt. Copy the crt
and key
files of your certificate to a folder in the jail.
Then, configure MariaDB to use the certificate by adding the following entriesto the [mysqld]
section of the /var/db/mysql/my.cnf
file:
MariaDB provides support for TLS version 1.1 by default. However, it’srecommended to use TLS version 1.2 and above according to the PCI SecurityStandards Council. The tls_version
option specifiedin the previous example removes support for TLS version 1.1.
Move the ZIL to a low-latency device
For better write performance, consider moving the ZIL to a low-latency device,such as an NVMe drive. If you have a pair of devices, you can use the followingcommand to add the devices to the tank pool as a mirrored log devices:
Where nvd0
and nvd1
are the low-latency devices.
If you only have one drive, you can add it as a log device with the followingcommand: Valhalla shimmer free mac download.
Install Freenas On Freebsd
To confirm that the pool is using the devices, run zpool status tank
and checkthat the devices are listed in the logs section, as shown in the followingexample: