logo
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
Development

How to Config Subdirectory with Rails + Nginx + Unicorn?

How to Config Subdirectory with Rails + Nginx + Unicorn?
Development
How to Config Subdirectory with Rails + Nginx + Unicorn?
by
Author-image
Mujtaba Sheikh
Fractional CTO & Design Strategy Expert

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
}

Author-image
Nabeela Anwar
Content Marketer & Strategist
Author

Nabeela is a content writer with 5+ years of experience in digital content and marketing strategy. Her articles have helped brands improve engagement by 2x and rank higher on search engines. 

Her writing turns complex ideas into engaging content that resonates with the right audience. She focuses on creating articles that inform, inspire action, and support business growth.

Check Out More Blogs
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!

FAQs

No items found.
Share this blog
Looking For Your Next Big breakthrough? It’s Just a Blog Away.
Check Out More Blogs