Nginx, also called engine-ex, is an open-source, high-performance web server used to host a website on the Internet. Nginx is also used as a reverse proxy, load-balancer, caching, and media streaming. It is lightweight, high-performance, and specially used to serve static files. It has an HTTPS capability and is designed for maximum performance and to handle the high-loaded website.
In this post, we will show you how to install the Nginx web server on Fedora 34.
Step 1 – Install Nginx Web Server
By default, the Nginx package is included in the Fedora 34 default repo. You can install it with the following command.
dnf update -y dnf install nginx
Once Nginx is installed, run the following command to see detailed information about the Nginx package:
rpm -qi nginx
You will get the following output.
Name : nginx Epoch : 1 Version : 1.22.0 Release : 1.fc34 Architecture: x86_64 Install Date: Thursday 13 April 2023 11:08:55 PM Group : Unspecified Size : 154661 License : BSD Signature : RSA/SHA256, Wednesday 25 May 2022 08:56:23 AM, Key ID 1161ae6945719a39 Source RPM : nginx-1.22.0-1.fc34.src.rpm Build Date : Wednesday 25 May 2022 08:36:04 AM Build Host : buildhw-x86-05.iad2.fedoraproject.org Packager : Fedora Project Vendor : Fedora Project URL : https://nginx.org Bug URL : https://bugz.fedoraproject.org/nginx Summary : A high performance web server and reverse proxy server Description : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high concurrency, performance and low memory usage.
Step 2 – Manage the Nginx Service
Nginx service is managed by systemd in Fedora 34. You can use the systemctl command to start, stop, restart, and enable the Nginx service.
To start the Nginx service, run the following command.
systemctl start nginx
To enable the Nginx service, run the following command.
systemctl enable nginx
To stop the Nginx service, run the following command.
systemctl stop nginx
To verify the Nginx status, run the following command.
systemctl status nginx
You will get the Nginx status in the following output.
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/nginx.service.d └─php-fpm.conf Active: active (running) since Thu 2023-04-13 23:08:59 EDT; 5s ago Process: 6314 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 6315 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 6316 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Main PID: 6317 (nginx) Tasks: 3 (limit: 4666) Memory: 3.2M CPU: 95ms CGroup: /system.slice/nginx.service ├─6317 nginx: master process /usr/sbin/nginx ├─6318 nginx: worker process └─6319 nginx: worker process
Step 3 – Access the Nginx Test Page
At this point, Nginx is installed and listens on port 80. You can check it with the following command.
ss -antpl | grep :80
You will get the following output.
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=6319,fd=10),("nginx",pid=6318,fd=10),("nginx",pid=6317,fd=10)) LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=6319,fd=11),("nginx",pid=6318,fd=11),("nginx",pid=6317,fd=11))
Now, open your web browser and access the Nginx test page using the URL http://your-server-ip. You should see the Nginx test page on the following screen.
Step 4 – Create a Sample Website
Next, create a website directory with the following command.
mkdir /var/www/html/nginxsite
Next, create a simple HTML file inside the website directory.
nano /var/www/html/nginxsite/index.html
Add the following configurations:
<html> <head> <title>Welcome to Nginx!</title> </head> <body> <h1>Success! The Nginx server block is working!</h1> </body> </html>
Save and close the file, then set the ownership to the website directory.
chown -R nginx:nginx /var/www/html/nginxsite
Step 5 – Create an Nginx Virtual Host
Next, create an Nginx virtual host to host your website on the web.
nano /etc/nginx/conf.d/nginxsite.conf
Add the following configurations:
server { listen 80; server_name nginx.example.com; root /var/www/html/nginxsite/; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
Save and close the file, then edit the Nginx main configuration file.
nano /etc/nginx/nginx.conf
Add the following line below the line http{:
server_names_hash_bucket_size 64;
Save and close the file, then verify the Nginx for any syntax error.
nginx -t
You will get the following output.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Finally, restart Nginx to apply the changes.
systemctl restart nginx
Step 6 – Verify Nginx Website
Now, open your web browser and access the Nginx website using the URL http://nginx.example.com. You should see the following screen.
Conclusion
Congratulations! You have successfully installed the Nginx web server on Fedora 34. You can now host your own website on the internet using the Nginx web server. You can also deploy Nginx on dedicated server hosting from Atlantic.Net!