How to config subdirectory with Rails + Nginx + Unicorn?

This article mainly focuses on how to run the rails app in a subdirectory using NGINX. You will learn the reverse proxy of Nginx to serve your rails app.

It was needed because I came to meet a problem in which I want to run a specific part of a website in Ruby on Rails for a specific subdirectory.  For example, my website is in PHP and I want to run Ruby on rails site on the same url with different subdirectories like Whenever /runthisinrubyonrails/ detected, It should run on a different servers which is running   ROR.

Table of Contents

Configuration in a rails app.

Rails give us a simple configuration for this purpose.

In config/application.rb file, add the following code:

module YourAPPName
 class Application < Rails::Application
   config.relative_url_root = '/runthisinrubyonrails'
   # some other configuration code

In file:

map Rails::Application.config.relative_url_root || "/" do
 run Rails.Application

Test everything works fine

we can check everything works fine with click route with /runthisinrubyonrails/ and simple by /.

for example, first asset was getting by now you can try with Both should work because when we have defined that in our file

Rails::Application.config.relative_url_root || "/"

if relative_url_root found then try with that if not then try with “/”

Nginx Configuration

So we have the following configuration:

upstream unicorn_sock {
 server your_sock_path;

server {
root <path_to_your_rails_app>/public;
location @proxy_rails_app {
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_redirect off;
 proxy_pass http://unicorn_sock;
location /runthisinrubyonrails/ {
 alias <path_to_your_rails_app>/public/;
 try_files $uri @proxy_rails_app;
try_files $uri @proxy_rails_app;
# some other configuration code

Subscribe to our Newsletter.

Thank you! Your subscription has been added to our newsletter!
Oops! Something went wrong while submitting the form.

Related Blogs.

No items found.


You have an idea? We handle all the rest

Drop us a line.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.


500 Grant Street, Downtown, Suite 2900,
Pittsburgh, PA 15219, USA

+1 (412) 475 9053

United Kingdom

Suite A12, 56 Wood Lane, London,
W12 7SB, UK

+1 (93) 606  7875


2 West Canal Bank Road, Lahore 54000,

+92 323 4957725

Project inquiries

it’s not about ideas
it’s about making ideas happen
Copyright 2022 - Phaedra Solutions.
All Rights Reserved