Introduction

“What is done wholeheartedly however small, is noble”

nginx configurations

If you would wish to share the same FQDN such as api.computingforgeeks.com to serve more than one site or to serve APIs, then this will help you. If you have two sites hosted on different servers in your environment for example sales and accounting, your clients will need to do the following on the browser to access the different sites.

To Access Sales site
https://api.computingforgeeks.com/sales

To Access Accounts site
https://api.computingforgeeks.com/accounts

As you can see, we are using the same FQDN to serve different sites which are differentiated by /sales and /accounting. This will save you more public IPs and Firewall Rules if you have one in your environment.

We hope you have Nginx already installed and running.

--- Install Nginx on Ubuntu / Debian ------
$ sudo apt -y install nginx
$ sudo systemctl enable --now nginx

--- Install Nginx on CentOS / Fedora ------
$ sudo yum -y install nginx
$ sudo systemctl enable --now nginx

--- Install Arch Linux / Manjaro ------
$ sudo pacman -S nginx
$ sudo systemctl enable --now nginx

Step 1: Modify Main Nginx Configuration file

Open up Nginx default configuration file and add the following line inside the http part. Make sure it is within the http curly brackets.

http {
....
......

include /etc/nginx/sites.d/*.conf;
}

This adds the configuration files in /etc/nginx/sites.d/ for nginx to read and act on them

Step 2: Create main Site configuration file

Let us now add our main site FQDN configuration file in /etc/nginx/sites.d

$ sudo vim api.computingforgeeks.com

server {
  listen 80;
  server_name  api.computingforgeeks.com;
  return 301 https://api.computingforgeeks.com$request_uri;
}
 
server {
  listen 443 ssl http2;
  server_name api.computingforgeeks.com; 
  modsecurity_transaction_id "api.computingforgeeks.com-$request_id"; 
  access_log           /var/log/nginx/test-api-access.log; 
  error_log            /var/log/nginx/test-api-error.log; 
  include              /etc/nginx/default.d/api.computingforgeeks.com/*.conf;
}

The specific sites will be located in /etc/nginx/default.d/api.computingforgeeks.com/ and as you can notice, that has been included in our configuration file.

Step 3: Create site routing configurations

Now create the sites under /etc/nginx/default.d/api.computingforgeeks.com/ directory as included in the configuration above. In this setup, we’ll create one for sales

cd /etc/nginx/default.d/api.computingforgeeks.com

This configuration will redirect traffic to server 1 (192.168.55.60) hosting sales site listening on port 8443

$ sudo vim sales.conf
location /sales/ {
  proxy_http_version 1.1;
  proxy_pass https://192.168.55.60:8443/sales/;
  proxy_cache_bypass $http_upgrade;
  proxy_set_header Connection 'upgrade';
  proxy_set_header Upgrade $http_upgrade;
}

This configuration will redirect traffic to server 1 (192.168.55.63) hosting sales site listening on port 8080

 $ sudo vim accounts.conf 
location /accounts/ {
   proxy_http_version 1.1;
   proxy_pass https://192.168.55.63:8080/accounts/;
   proxy_cache_bypass $http_upgrade;
   proxy_set_header Connection 'upgrade';
   proxy_set_header Upgrade $http_upgrade;
}

That is all you need to configure your nginx to proxy your sites or APIs using the same FQDN. Thank you for reading through and before you decide to shift your eyes, take a look at related guides below:

Install Varnish Cache 6 for Apache/Nginx on CentOS 7

How to hide X-Powered-By / X-CF-Powered-By PHP headers in Nginx

How To Enable GZIP & Brotli Compression for Nginx on Linux

Configure JFrog Artifactory behind Nginx reverse proxy and Let’s Encrypt SSLConfigure JFrog Artifactory behind Nginx reverse proxy and Let’s Encrypt SSL

Configure Jenkins behind Nginx reverse proxy and Let’s Encrypt SSL

How to solve nginx: [warn] could not build optimal proxy_headers_hash error

Install WordPress with Nginx on Ubuntu 18.04 / Debian 9

Your support is our everlasting motivation,
that cup of coffee is what keeps us going!


As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.

LEAVE A REPLY

Please enter your comment!
Please enter your name here