--- title: NGINX Configuration description: How to simply configure and NGINX http server published: true date: 2025-02-27T20:27:40.472Z tags: nginx, server, http, linux editor: markdown dateCreated: 2025-02-27T15:48:54.929Z --- # Configuring NGINX #### Note: Following "The NGINX Crash Course" by Laiture on Youtube.com *Big BIG thanks to Laiture for this incredible how to video.* ##### - */etc/nginx/nginx.conf ==> main configuration file* ## Terminology: Directives - key value pairs within blocks of code Contexts - blocks of code that contain directives. http, events, etc... events context must be present. To Start NGINX: `nginx` Simplest Static Site: - Use http and events context: ``` #nginx.conf example http { server{ listen 8080; root /var/www/html; } } events {} ``` Reload NGINX after changes: `nginx -s reload` ## Mime Types - Mime types allow styles and other dynamic content to be served based on filetypes. - Mime.types file contains a collection of filetypes supported by NGINX to serve. - Including it in the conf file allows dynamic content to be served. To include Mime Types simply add: `include mime.types` ## Location Block - Adding a location block can be done as the following: ``` server { listen 8080; root /var/www/html; location /somepath { # http://localhost:8080/somepath root /var/www/html; # Serves index.html within /somepath folder in /var/www/html } } ``` - Location can take directives such as: 1. *alias* - redirects elsewhere such as: ``` server { listen 8080; root /var/www/html; location /somepath { # http://localhost:8080/somepath root /var/www/html; # Serves index.html within /somepath folder in /var/www/html } location /otherpath { alias /var/www/html/somepath; # Points back to "somepath". } } ``` 2. *try_files* - Specifies files to try before index.html, followed by what to show if not found. - Example: ` try_files /somepath/somesite.html /index.html =404; ` - Explanation: - Try to find and serve *somesite.html* in *somepath* folder and if not found, redirect to *root/index.html*. - If neither are found, produce 404 Error. ## Redirects & Rewrites ### Redirects: ``` location /somesite { return 307 /someOtherSite; } ``` ### Rewrite: ``` rewrite /some/path/I/want /to/some/path/that/exists; location { ... }