Introduction
Nginx is an open source web server, a reverse proxy or a load balancer and it's responsible for serving the highest traffic sites like Cloudflare, MaxCDN, Wordpress. Recently Nginx got acquired by F5 for $670M dollars (source).
The following article was written and tested on a standard Linux Debian 9,10,11.
Step 1 - Installation
Install required dependencies first.
apt-get install -y curl gnupg2 ca-certificates
Add the official mainline repository from Nginx
echo \"deb http://nginx.org/packages/mainline/debian stretch nginx\" | \\
tee /etc/apt/sources.list.d/nginx.list && \\
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
Add the keys and update reps.
apt-key fingerprint ABF5BD827BD9BF62 && \\
apt-get update
Install the latest mainline Nginx version.
apt-get install -y nginx
Step 2 - Configure
Depending on the version or the repository sometimes configuration may be different and installed on different paths. Run nginx -V
to grab the required paths needed for configuring Nginx. Example output:
....
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf
....
Now based on the previous output run cat /etc/nginx/nginx.conf
to check out where directives are located and which are loaded.
Example output:
.......
user nginx;
worker_processes 1;
......
http {
.......
include /etc/nginx/conf.d/*.conf;
}
Every valid directive/block file with the extension .conf
located at /etc/nginx/conf.d/
will be loaded every time Nginx start. THe master configuration is located at /etc/nginx/nginx.conf
and can be useful for pre-default settings that will take effect on every directive. Adding directives can be done easily just by creating .conf
files, restart the server using systemctl restart nginx.service
. Always run nginx -t
before restarting Nginx to make sure the configuration is valid.
Example: /etc/nginx/conf.d/my-test.conf
ginx
server {
listen 1337;
location / {
add_header content-type text/plain;
return 200 \"hello world\";
}
}
Useful Links
https://www.nginx.com/resources/wiki/start/topics/examples/full/