FreeBSD

Installing Nginx on FreeBSD

Nginx is a stylization for engine x. It is a free and open-source HTTP server written and developed by the Russian software engineer Igor system. Nginx is also frequently used as a reverse/mail proxy server and a load balancer. Although lightweight in its web server class, it is highly robust and produces impressive results nonetheless. As a result, it has been steadily on the rise and has gained a significant reputation as a reliable web server. It’s scalability and resource-optimization features have earned its place as one of the most popular webservers, with one estimate reporting over 38 percent of the top 1 million websites on the internet being hosted on Nginx servers around the world.

Nginx- HTTPS Features

As mentioned earlier, Nginx can be used as an HTTP server, proxy server, load balancer, and mail server as well. Here, we’ll list some of the uses of Nginx as an HTTPS webserver/Proxy.

  • Outstanding Static/index/auto-indexing files management features
  • Comes with load balancing operational with features to monitor connections health.
  • Module-based architecture with supports from both the main and third parties.
  • Capable of handling well over 10,000 connections at once, and that too on a low memory footprint within the range of 2.5 MB per 10k low-bandwidth connections.
  • Transport layer security/Secure Socket Layer connections with OpenSSL supported Onile Certificate Status Protocol stapling features
  • Launch virtual servers with your name and system’s IP address.
  • Handy features to redirect and rephrase URLs
  • Newer versions capable of supporting gRPC remote procedural call.
  • Employs cache to launch reverse proxies
  • Compatible with Internet Protocol Version 6
  • Supports WebSockets and performs load balancing and reverse proxy for Websocket programs.
  • Fortified client-server connection, with features for updating and configuration during operation.

Installing NGINX on FreeBSD

This tutorial is going to be about setting up and getting started with the Nginx web server under the FreeBSD Unix-operating system.

Installation Overview

The whole procedure can be summarized as follows:

  1. Use the pkg command or ports system to install Nginx on FreeBSD.
  2. Enable the Nginx support on FreeBSD.
  3. Edit the file located at /usr/local/etc/nginx/nginx.conf to configure Nginx
  4. Verify the install

Follow the instructions below to set up Nginx on your FreeBSD server.

Step 1: Update the ports tree in FreeBSD

Issue the following command to update the ports tree in FreeBSD:

$ portsnap fetch update

Step 2: Install Nginx on FreeBSD

There are two ways you can install Nginx on your server:

1) using via ports system 

Then install Nginx webserver port with the commands below:

$ cd /usr/ports/www/nginx/

$ makeinstall clean

While you install Nginx, select the options relevant to your use of the webserver. Here, we chose REWRITE_MODULE, SSL_MODULE, etc., to present as an example.

2) using the pkg command

Alternatively, you can choose to install Nginx by adding the nginx binary package with the package manager, using the pkg command:

$ pkg install nginx

This should install Nginx on your FreeBSD webserver.

Step 3: Enable the Nginx Service on FreeBSD

Type in the command below to enable the Nginx web server

$ echo 'nginx_enable="YES"' >> /etc/rc.conf

Alternatively, you can also type in:

$ sudo sysrc nginx_enable="YES"

That’s about it with the installation.

Getting started with Nginx on FreeBSD

Launch an Nginx server

Launch Nginx by typing the following into the command shell and pressing enter:

$ /usr/local/etc/rc.d/nginx start

Alternatively, you can issue the command below:

$ service nginx start

Close an Nginx Server

To exit an Nginx server, issue the command below:

$ /usr/local/etc/rc.d/nginx stop

You can also type in the more concise command as well:

$ service nginx stop

This command should quit the Nginx server

Rebooting Nginx server

Issue the command below to restart the Nginx server.

$ /usr/local/etc/rc.d/nginx restart

Alternatively,

$ service nginx restart

The Nginx server should restart upon the execution of the command above.

Reloading Nginx webservers post configuration

To restart an Nginx server after editing the configuration file, use the command below:

$ /usr/local/etc/rc.d/nginx reload

You can also use:

$ service nginx reload

Important files in Nginx

  • The Default configuration file for Nginx in FreeBSD is located at: /usr/local/etc/nginx/nginx.conf
  • The ports on which Nginx listens to by default are 80 &  443
  • The file that contains all the error details is /var/log/nginx-error.log
  • The file that records the details related to access requests is /var/log/nginx-access.log
  • The root document in Nginx is located at the /usr/local/www/nginx/ directory.

Testing the Nginx setup on FreeBSD

Copy and paste the following link into the URL field in your web browser:

http://server-ip-here/

Creating a website with Nginx

Start by setting up a directory by issuing the mkdir command:

$ mkdir /wwwwiki

Then create a new user for your domain with the command below:

$ pw user add -n wwwwiki -c 'Wiki User' -d /nonexistent -s /usr/sbin/nologin

Lock the username with the following command:

$ pw lock wwwwiki

Then chalk up a file to test things out:

$ sudo nano /wwwwiki/index.html

Then copy-paste the following into the file:

# <html>

# <head>

# <title>younis's personal wiki dir</title>

# </head>

# <body>

# <h1>Wiki dir</h1>

# <p>This is a test and I will configure PHP 7.x to host mediawiki</p>

# <hr>

# &copy; <a href="https://www.linuxhint.com/yunissaid12">www.linuxhint.com</a>

# </body>

# </html>

Then allot the group ownership with the commands below:

$ chown -R wwwwiki:wwwwiki /wwwwiki/

$ chmod -R 0555 /wwwwiki/

$ ls -ld /wwwwiki/

Configure Nginx for wiki virtual domain or IP address

Start by creating a configuration file with the commands below:

$ mkdir /usr/local/etc/nginx/vdomains/

$ sudo nano /usr/local/etc/nginx/vdomains/http.10.0.2.15.conf

Then copy-paste thefollowing text to this file and make appropriate changes to the text below:

# server {

#    server_name 10.0.2.15; # virtual IP or domain name here

#   access_log  /var/log/nginx/10.0.2.15.access.log;  # log files

#   error_log  /var/log/nginx/10.0.2.15.error.log;

#  root /wwwwiki;  # root dir for this virtual host

#    ## add more config below such as PHP and so on ##

#}

Don’t forget to save the file before you exit it. Then use the command below to update our configuration file:

$ sudo nano /usr/local/etc/nginx/nginx.conf

Then append the following towards the end:

include "vdomains/*.conf";

Again, save and exit this file. Then verify nginx using the following command:

$ nginx -t

$ service nginx reload

Lastly, test the configuration by issuing your IP address:

http://10.0.2.15/

In summary

That’s about it for today’s tutorial. We explained how to install Nginx on a FreeBSD server using the ports system and the pkg command, and how to enable the Nginx service on FreeBSD. We also saw how to set up a website with Nginx and introduced Nginx to the new users. The instructions here should work out for you just fine.

About the author

Younis Said

I am a freelancing software project developer, a software engineering graduate and a content writer. I love working with Linux and open-source software.