NGINX Basics For Debian Server Updated on January 12, 2023 by Christopher Maiorana 3 Minutes, 9 Seconds to Read Experience full control over your server environment and deploy the best operating and management systems that fit your needs with our reliable Cloud VPS Hosting! NGINX is not only a popular reverse proxy option, it’s a complete standalone web server. In this article, you’ll learn some NGINX basics to get up and running on your Debian server right away. NGINX Basics For Debian Uninstalling Apache Editing Your Configuration Files (Symlink or No?) Sample NGINX Configuration For a Basic Website Sample Advanced Configuration NGINX Basics For Debian You can use NGINX in a number of different ways. This article presupposes that you want to use NGINX as a replacement for the default Apache web server that comes with your InMotion Hosting cloud VPS account. If you have VPS hosting with cPanel you can still use NGINX. If you have any questions about using NGINX alongside (or instead of) Apache, feel free to get advice from our managed hosting advisors. Uninstalling Apache As you may know, your cloud server comes with the Apache web server pre-installed. In order to avoid conflicts, you should consider stopping the Apache service or uninstalling it entirely. While logged in as the root user, run this command to stop the Apache web service: service apache2 stop And to remove Apache entirely, run this command: apt remove apache2 Please note: if you are not logged in as the root user, you must make sure that your user has sudo privileges and append “sudo” to each command. Now you can install NGINX, if you haven’t already, by running this command: apt install nginx Editing Your Configuration Files (Symlink or No?) You have a lot of options when it comes to editing your NGINX configuration files. But first things first, take note that these files are located in your /etc/nginx/ directory. You will further notice two directories inside the /nginx/ directory: /sites-available/ and /sites-enabled/. Many NGINX users will create a configuration file for a website or virtual host by adding it to the /sites-available/ directory and create a symbolic link (symlink) to a file in the /sites-enabled/ directory. If you don’t know how to create a symlink, or would rather not bother, you can simply place your configuration files in the /sites-enabled/ directory and they will be active when you restart NGINX. Sample NGINX Configuration For a Basic Website Here is a sample configuration for a basic website: server { listen 80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name example.com; } Make sure to restart NGINX whenever you make changes to your configuration: service nginx restart Sample Advanced Configuration As you find more use cases for NGINX you can add more advanced configurations. For example, this configuration removes the .html extension from files using the “location” directive: server { listen 80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name example.com; location / { if ($request_uri ~ ^/(.*)\.html) { return 302 /$1; } try_files $uri $uri.html $uri/ =404; } This demonstrates how you can use a combination of different directives to get different effects. For more examples check out the NGINX example configurations page. Setting Up a Basic Page Cache When it comes to optimizing your site speed, NGINX can play a big role. At the very least, you should use NGINX to set up a basic cache for static resources like images, CSS files, and font files. You can do with a directive like the one below: location ~* \.(jpg|jpeg|png|ttf|gif|css|js)$ {expires 7d;} Now you should have your NGINX server up and running. Feel free to mix and match and try different configurations to get the perfect recipe. And do consider sharing your results in the comments. Check out some more resources from the Support Center: Debian 8 general guide Install LAMP stack on Debian How to install a private search engine on Debian Understanding Linux operating systems Share this Article CM Christopher Maiorana Content Writer II Christopher Maiorana joined the InMotion community team in 2015 and regularly dispenses tips and tricks in the Support Center, Community Q&A, and the InMotion Hosting Blog. More Articles by Christopher Related Articles How to Stress Test Your Website How to find what is using the most disk space on my server What is Excessive Server Resource Usage and How to Fix it How Can I View My CPU Usage in cPanel? Understanding Caching Understanding Server Loads Large Surges in Traffic Going to a Site Not Optimized for High Traffic Advanced Server Load Monitoring How to Create a Website Stress Testing Plan NGINX Basics For Debian Server