In the previous tutorial we saw how to install and run Freeboard.io on Ubuntu with an Apache 2 web server. In this tutorial we will see how to do the same with the Nginx web server.
How to install Nginx on Ubuntu (16.04 LTS +)
Nginx installs very simply with a simple apt-get command.
sudo apt-get update sudo apt-get install nginx
Accept questions during installation. At the end of the installation, Ubuntu starts the Nginx server. You can easily verify that the server is started using the systemctl status option.
systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy serv Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor pr Active: active (running) since lun. 2016-11-21 18:46:50 CET; 2h 46min Process: 18423 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry Process: 18893 ExecStart=/usr/sbin/nginx -g daemon on; master_process Process: 18890 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master Main PID: 18897 (nginx) CGroup: /system.slice/nginx.service ├─18897 nginx: master process /usr/sbin/nginx -g daemon on; m ├─18898 nginx: worker process ├─18899 nginx: worker process ├─18900 nginx: worker process └─18901 nginx: worker process
As we can see, the service is well started, we can move on following the configuration of freeboard.io
Installing Freeboard.io on Ubuntu
Recovering sources on GitHub
Let’s start by installing git (unless it is already present on your PC).
sudo apt-get install git
An installation directory is created. It does not matter the location of the directory, install it for example in your user folder or in the Home.
sudo mkdir /home/freeboard_io
We start the recovery of the sources on GitHub
cd /home/freeboard_io git clone https://github.com/Freeboard/freeboard.git
Creating a symbolic link to /var/www
The files of the website must be located (ideally by convention) in the /var/www. As for Apache, we will simply create a symbolic link that will allow the Nginx server to find the files of the freeboard site.
Note. If you followed the previous tutorial and your Apache configuration is already done, you can skip this step.
sudo -s cd /var/www ln -s /home/freeboard_io/freeboard freeboard_io
Configuring Freeboard_io for Nginx
If you go to the directory of Nginx, you will realize that the structure of the folders is very similar to that of Apache.
/etc/nginx# ls conf.d koi-utf nginx.conf sites-available ssl fastcgi.conf koi-win proxy_params sites-enabled uwsgi_params fastcgi_params mime.types scgi_params snippets win-utf
We will therefore create a new configuration (we can also modify the site by default).
sudo nano /etc/nginx/sites-available/freeboard_io.com
Adapt this configuration to your needs and paste there into the file. Save with CTRL+X and then Y.
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/freeboard_io; index index.html index.htm; server_name freeboard_io.com www.freeboard_io.com; location / { try_files $uri $uri/ =404; } }
Activating the site freeboard_io.com
Now, activate the site by creating a symbolic link in the sites-enabled folder
sudo ln -s /etc/nginx/sites-available/freeboard_io.com /etc/nginx/sites-enabled/
Configuring the Hosts File
As with the Apache configuration, you just have to point the url to the site. To do this, retrieve the ip address of your PC with the ifconfig command and then open the /etc/hosts file
sudo nano /etc/hosts
Replace the IP address with that of your PC and save
127.0.0.1 localhost 192.168.2.2 freeboard_io.com
And now you can access freeboard from your browser using the address http://freeboard_io.com
Useful commands to manage Nginx
Now that our server is running and the freeboard.io dashboard manager is functional, here are some useful commands to handle Nginx.
To stop the web server
sudo systemctl stop nginx
To start the web server when it is already stopped.
sudo systemctl start nginx
To restart Nginx (this command is equivalent to doing stop and then start).
sudo systemctl restart nginx
To check the configuration before starting (or reloading) the web server.
nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload configuration files after a change. Nginx is able to reload the new configuration without cutting existing connections.
sudo systemctl reload nginx
By default, Nginx starts when the (server) computer starts. You can disable this behavior with this command.
sudo systemctl disable nginx
On the contrary, to activate the startup of Nginx at server startup,
sudo systemctl enable nginx