How to setup Ruby on Rails static web pages behind Nginx reverse proxy
Summary of question is what is the method to setup Nginx to serve static pages for site, and how and where is this Nginx server installed (is it supposed to be on same server where Ruby on Rails Server is installed) and will it work behind a Nginx Reverse Proxy.
Original issue was rails app was not sending css files, and not rendering site during production environment. During development environment site renders correctly.
I currently have a Nginx Reverse Proxy Server, which acts a Reverse Proxy for multiple domain websites (each website domain running on the own server with separate LAN IP address) running one the one WAN IP address.
Ruby version 2.5
Rails version 5.2.2
Just started out on Ruby on Rails and have setup a site (example.com) and it has five pages, four of the the five pages are static (welcome, help, contact news), one page is dynamic and pulls data from database.
I had to run below code and then enable public file server to true in the RailsApp/config/environments/productions.rb.
$ bundle exec rake assets:precompile
RailsApp/config/environments/productions.rb
config.public_file_server.enabled = true
Currently have WAN IP -> Nginx Reverse Proxy (Server 1) -> Ruby on Rails App Server (Server 2).
What is the recommended method to host static pages found in the Ruby on Rails App. That is, does the Nginx Reverse Proxy (Server 1) need local LAN file access to Rails App (Server 2) to access the static site pages, or does another Nginx web server get installed on Server 2, and then configure this new Nginx to serve out static pages request?
networking proxy nginx ruby ruby-on-rails
add a comment |
Summary of question is what is the method to setup Nginx to serve static pages for site, and how and where is this Nginx server installed (is it supposed to be on same server where Ruby on Rails Server is installed) and will it work behind a Nginx Reverse Proxy.
Original issue was rails app was not sending css files, and not rendering site during production environment. During development environment site renders correctly.
I currently have a Nginx Reverse Proxy Server, which acts a Reverse Proxy for multiple domain websites (each website domain running on the own server with separate LAN IP address) running one the one WAN IP address.
Ruby version 2.5
Rails version 5.2.2
Just started out on Ruby on Rails and have setup a site (example.com) and it has five pages, four of the the five pages are static (welcome, help, contact news), one page is dynamic and pulls data from database.
I had to run below code and then enable public file server to true in the RailsApp/config/environments/productions.rb.
$ bundle exec rake assets:precompile
RailsApp/config/environments/productions.rb
config.public_file_server.enabled = true
Currently have WAN IP -> Nginx Reverse Proxy (Server 1) -> Ruby on Rails App Server (Server 2).
What is the recommended method to host static pages found in the Ruby on Rails App. That is, does the Nginx Reverse Proxy (Server 1) need local LAN file access to Rails App (Server 2) to access the static site pages, or does another Nginx web server get installed on Server 2, and then configure this new Nginx to serve out static pages request?
networking proxy nginx ruby ruby-on-rails
add a comment |
Summary of question is what is the method to setup Nginx to serve static pages for site, and how and where is this Nginx server installed (is it supposed to be on same server where Ruby on Rails Server is installed) and will it work behind a Nginx Reverse Proxy.
Original issue was rails app was not sending css files, and not rendering site during production environment. During development environment site renders correctly.
I currently have a Nginx Reverse Proxy Server, which acts a Reverse Proxy for multiple domain websites (each website domain running on the own server with separate LAN IP address) running one the one WAN IP address.
Ruby version 2.5
Rails version 5.2.2
Just started out on Ruby on Rails and have setup a site (example.com) and it has five pages, four of the the five pages are static (welcome, help, contact news), one page is dynamic and pulls data from database.
I had to run below code and then enable public file server to true in the RailsApp/config/environments/productions.rb.
$ bundle exec rake assets:precompile
RailsApp/config/environments/productions.rb
config.public_file_server.enabled = true
Currently have WAN IP -> Nginx Reverse Proxy (Server 1) -> Ruby on Rails App Server (Server 2).
What is the recommended method to host static pages found in the Ruby on Rails App. That is, does the Nginx Reverse Proxy (Server 1) need local LAN file access to Rails App (Server 2) to access the static site pages, or does another Nginx web server get installed on Server 2, and then configure this new Nginx to serve out static pages request?
networking proxy nginx ruby ruby-on-rails
Summary of question is what is the method to setup Nginx to serve static pages for site, and how and where is this Nginx server installed (is it supposed to be on same server where Ruby on Rails Server is installed) and will it work behind a Nginx Reverse Proxy.
Original issue was rails app was not sending css files, and not rendering site during production environment. During development environment site renders correctly.
I currently have a Nginx Reverse Proxy Server, which acts a Reverse Proxy for multiple domain websites (each website domain running on the own server with separate LAN IP address) running one the one WAN IP address.
Ruby version 2.5
Rails version 5.2.2
Just started out on Ruby on Rails and have setup a site (example.com) and it has five pages, four of the the five pages are static (welcome, help, contact news), one page is dynamic and pulls data from database.
I had to run below code and then enable public file server to true in the RailsApp/config/environments/productions.rb.
$ bundle exec rake assets:precompile
RailsApp/config/environments/productions.rb
config.public_file_server.enabled = true
Currently have WAN IP -> Nginx Reverse Proxy (Server 1) -> Ruby on Rails App Server (Server 2).
What is the recommended method to host static pages found in the Ruby on Rails App. That is, does the Nginx Reverse Proxy (Server 1) need local LAN file access to Rails App (Server 2) to access the static site pages, or does another Nginx web server get installed on Server 2, and then configure this new Nginx to serve out static pages request?
networking proxy nginx ruby ruby-on-rails
networking proxy nginx ruby ruby-on-rails
edited Jan 6 at 21:34
hs333dev
asked Jan 6 at 11:45
hs333devhs333dev
12
12
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
According to Rails guide
config.public_file_server.enabled configures Rails to serve static files from the public directory. This option defaults to true, but in the production environment it is set to false because the server software (e.g. NGINX or Apache) used to run the application should serve static files instead. If you are running or testing your app in production mode using WEBrick (it is not recommended to use WEBrick in production) set the option to true. Otherwise, you won't be able to use page caching and request for files that exist under the public directory.
and about your quesiton - should the only nginx server(reverse proxy) serve rails static files? answer: true (it's preferable option)
Maybe this example of config could help.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1391131%2fhow-to-setup-ruby-on-rails-static-web-pages-behind-nginx-reverse-proxy%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
According to Rails guide
config.public_file_server.enabled configures Rails to serve static files from the public directory. This option defaults to true, but in the production environment it is set to false because the server software (e.g. NGINX or Apache) used to run the application should serve static files instead. If you are running or testing your app in production mode using WEBrick (it is not recommended to use WEBrick in production) set the option to true. Otherwise, you won't be able to use page caching and request for files that exist under the public directory.
and about your quesiton - should the only nginx server(reverse proxy) serve rails static files? answer: true (it's preferable option)
Maybe this example of config could help.
add a comment |
According to Rails guide
config.public_file_server.enabled configures Rails to serve static files from the public directory. This option defaults to true, but in the production environment it is set to false because the server software (e.g. NGINX or Apache) used to run the application should serve static files instead. If you are running or testing your app in production mode using WEBrick (it is not recommended to use WEBrick in production) set the option to true. Otherwise, you won't be able to use page caching and request for files that exist under the public directory.
and about your quesiton - should the only nginx server(reverse proxy) serve rails static files? answer: true (it's preferable option)
Maybe this example of config could help.
add a comment |
According to Rails guide
config.public_file_server.enabled configures Rails to serve static files from the public directory. This option defaults to true, but in the production environment it is set to false because the server software (e.g. NGINX or Apache) used to run the application should serve static files instead. If you are running or testing your app in production mode using WEBrick (it is not recommended to use WEBrick in production) set the option to true. Otherwise, you won't be able to use page caching and request for files that exist under the public directory.
and about your quesiton - should the only nginx server(reverse proxy) serve rails static files? answer: true (it's preferable option)
Maybe this example of config could help.
According to Rails guide
config.public_file_server.enabled configures Rails to serve static files from the public directory. This option defaults to true, but in the production environment it is set to false because the server software (e.g. NGINX or Apache) used to run the application should serve static files instead. If you are running or testing your app in production mode using WEBrick (it is not recommended to use WEBrick in production) set the option to true. Otherwise, you won't be able to use page caching and request for files that exist under the public directory.
and about your quesiton - should the only nginx server(reverse proxy) serve rails static files? answer: true (it's preferable option)
Maybe this example of config could help.
edited Jan 25 at 13:28
answered Jan 25 at 13:13
Flex ChanFlex Chan
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1391131%2fhow-to-setup-ruby-on-rails-static-web-pages-behind-nginx-reverse-proxy%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown