Skip to content
Bots!
Bots!
  • About
    • Myself
    • আমার দোয়া
  • Bookmarks
    • Bookmarks
    • My OCI Bookmarks
    • Useful Proxmox Commands & Links
    • Learning Nano
    • Useful Sites
    • Useful Virtualbox Command
    • Useful MySQL Command
    • Useful Linux Command
    • BTT-CAS
  • Resources
    • Webinar on Cloud Adoption for Project Managers
  • Photos
  • Videos
  • Downloads
Bots!

Nginx Reverse Proxy with Sub Directory Mapping

Rumi, May 30, 2023May 30, 2023

Setup Note:

My web application has a sub-directory, 192.168.1.8:8088/messages, that I want to expose to the outside world as messages.mysite.com. I’ve gotten half way there but I seem to be stuck. My requirements are as follows

  • Redirect the site from HTTP to HTTPS.
  • As I cannot edit the links the web application generates, I need to be able to accept requests from the client such as messages.mysite.com/messages?id=23023.
  • Do not allow reverse proxy access to the root web application, 192.168.1.8:8088 or to any sub-directory other than 192.168.1.8:8088/messages and its children.

Reference Solution:

Redirecting is a server response to tell client to load another URL. Reverse proxying is telling the server to send the request to another server and return the response back to the client.

The HTTP to HTTPS redirect should always be a simple redirect of the HTTP URL to the corresponding HTTPS URL, without modifications. There is rarely any need to modify the URL path at this step.

Reference Solution:

server {
listen 80;
server_name messages.example.com;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl;
server_name messages.example.com;

ssl_certificate /etc/letsencrypt/live/messages.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/messages.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

location = / {
proxy_pass http://192.168.1.8:8088/messages;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /messages {
proxy_pass http://192.168.1.8:8088/messages;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

I removed the $upstream variable, because the configuration is easier to read when the location / and proxy_pass variables are next to each other.

This setup forwards requests as follows:

https://messages.example.com/ => http://192.168.1.8:8088/messages
https://messages.example.com/?some=value => http://192.168.1.8:8088/messages?some=value
https://messages.example.com/message => http://192.168.1.8:8088/messagesmessage

Administrations Collected Articles Configurations (Linux) nginxReverse Proxy

Post navigation

Previous post
Next post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Myself…

Hi, I am Hasan T. Emdad Rumi, an IT Project Manager & Consultant, Virtualization & Cloud Computing and Public Key Infrastructure Savvy from Dhaka, Bangladesh. I have prior experience in managing numerous local and international projects in the area of Telco VAS & NMC, National Data Center & Naitonal PKI Root and Enterprise CA Infrastructure. Also engaged with several Offshore Software Development Team.

Worked with Orascom Telecom-Banglalink, Network Elites as VAS partner, BTRC, BTT (Turkey) , Mango Teleservices Limited and Access to Informaiton (A2I-UNDP) and at Oracle Corporation as Principal Technology Solution (Cloud) Architect.

And currently being employed at Huawei Technologies (Bangladesh) Ltd. as Advanced Business Development Lead (Cloud) in the south asia region.

You can reach me [h.t.emdad at gmail.com] and I will be delighted to exchange my views.

Tags

Apache Bind Cacti CentOS CentOS 6 CentOS 7 Debain Debian Debian 10 Debian 11 Debian 12 DKIM Docker icinga iptables Jitsi LAMP Letsencrypt Linux Munin MySQL Nagios Nextcloud NFS nginx pfsense php Postfix Proxmox RDP Softether SSH SSL Ubuntu Ubuntu 16 Ubuntu 18 Ubuntu 20 Varnish virtualbox virtualmin vpn Webmin Windows 10 XCP-NG zimbra

Topics

Recent Posts

  • Randomize Source IP Addresses With Postfix August 19, 2026
  • Conversation of Trevor Noah and Ian Bremmer August 7, 2026
  • Multi Thread file downloader for linux CLI July 27, 2026
  • Proxmox Proxy Application for WHMCS and ModulesGarden Plugin May 28, 2026
  • Installing & Configuring Cloud-Init on ISO-Built Ubuntu 22.04 VMs May 27, 2026
  • Upgrdae debian 12 to debian 13 May 22, 2026
  • User Account Control (UAC) or Windows blocks a setup file May 2, 2026
  • Install Proxmox VE on Debian 13 Trixie March 24, 2026
  • Directory Index PHP file March 17, 2026
  • CovermyAss February 27, 2026

Archives

Top Posts & Pages

  • Randomize Source IP Addresses With Postfix
©2026 Bots! | WordPress Theme by SuperbThemes