logo
No cross
Book Your Free Strategy Call
Valid number
Prefer email? Reach us directly at:
no-img
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Free 1:1 Strategy Session
Not sure what’s next? Let’s fix that.
In 30 minutes, we’ll help you uncover what’s not working — and map a path to move forward with confidence.





Honest feedback from experts
Actionable advice tailored to your goals
No hard sell — just clarity
Book Your Free Call
Expert Insights for Tech Leaders
Curious minds like yours deserve smarter content.
Get access to the trends, tools, and ideas shaping tomorrow’s products — before everyone else.
Fresh blogs, deep dives & frameworks
Built for founders, PMs & tech leaders
No spam — just the good stuff
Index
Ruby on Rails

How to Config Subdirectory with Rails + Nginx + Unicorn?

How to Config Subdirectory with Rails + Nginx + Unicorn?
Ruby on Rails
How to Config Subdirectory with Rails + Nginx + Unicorn?
by
Author-image
Mujtaba Sheikh
CTO at Phaedra Solutions | Technology Visionary

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 www.myphpwebsite.com/ and I want to run Ruby on rails site on the same url with different subdirectories like www.myphpwebsite.com/runthisinrubyonrails/. Whenever /runthisinrubyonrails/ detected, It should run on a different servers which is running   ROR.

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
 end
end

In config.ru file:

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

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 www.myphpwebiste.com/assets/favicon.ico now you can try with www.myphpwebsite.com/runthisinrubyonrails/assets/favicon.ico. Both should work because when we have defined that in our config.ru 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
}

search-btnsearch-btn
cross-filter
Search by keywords
No results found.
Please try different keywords.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Get Exclusive Offers, Knowledge & Insights!