I'm facing a problem with an Nginx sites-available config file. I'm trying to set up a client that uses Server Side Rendering (SSR) with Nodejs, and a RestfulAPI that uses Ruby on Rails. What I want is to have my default path location "/" that goes to the Nodejs server, and I also want to have all the calls to my server (my API) to the path location "/api".
Here is my config file :
listen 80;
server_name didsomeonesayfrankerz.com;
passenger_friendly_error_pages on;
passenger_enabled on;
passenger_app_group_name didsomeonesayfrankerz;
passenger_min_instances 15;
passenger_max_request_queue_size 200;
passenger_app_env production;
client_max_body_size 10M;
# API server
location /api {
passenger_app_type ruby;
passenger_ruby /home/ost/.rvm/gems/ruby-3.0.0/wrappers/ruby;
root /home/ost/didsomeonesayfrankerz/server/public;
}
# SSR
location / {
root /home/ost/didsomeonesayfrankerz/client/dist/ssr;
passenger_app_type node;
passenger_nodejs /home/ost/.nvm/v18.16.0;
passenger_startup_file /home/ost/didsomeonesayfrankerz/client/dist/ssr/index.js;
}
charset utf-8;
location ~ /\.(?!well-known).* {
deny all;
}
My problem is pretty simple : every calls I make to the server ("/api") are catched by the Node Server (SSR). I tried using "location ^~ /api" but didn't work.
Any help or suggestions are appreciated!
Turns out I finally found the issue : the passenger_app_group_name. Simply comment it and everything works fine. It is also possible to put the passenger_app_group_name inside each location spots.
listen 80;
server_name didsomeonesayfrankerz.com;
passenger_friendly_error_pages on;
passenger_enabled on;
# passenger_app_group_name didsomeonesayfrankerz;
passenger_min_instances 15;
passenger_max_request_queue_size 200;
passenger_app_env production;
client_max_body_size 10M;
# API server
location /api {
passenger_app_type ruby;
passenger_ruby /home/ost/.rvm/gems/ruby-3.0.0/wrappers/ruby;
root /home/ost/didsomeonesayfrankerz/server/public;
passenger_app_group_name didsomeonesayfrankerzAPI;
}
# SSR
location / {
root /home/ost/didsomeonesayfrankerz/client/dist/ssr;
passenger_app_type node;
passenger_nodejs /home/ost/.nvm/v18.16.0;
passenger_startup_file /home/ost/didsomeonesayfrankerz/client/dist/ssr/index.js;
passenger_app_group_name didsomeonesayfrankerzSSR;
}
charset utf-8;
location ~ /\.(?!well-known).* {
deny all;
}