在域的子 uri 部署 rails 应用程序
Deploy rails app at sub uri of a domain
我们已经使用 Nginx 和 puma 为我们的 rails 应用设置了生产服务器。我们想在子 uri 和主域上部署我们的 rails 应用程序,我们想将 wordpress 用于主页、定价页面等。
我们如何配置我们的 rails 使其能够 运行 在具有 Devise gem 作为身份验证的子 uri 上。我们需要更改子 uri 的路由吗?
nginx 和 puma 的配置是什么?
提前致谢!
不,您根本不应该配置 rails 应用程序。
事实上,您只需更改您的 nginx 配置即可。
它应该将根域请求代理到您的 wordpress 应用程序,并将子域请求代理到您的 rails 应用程序。
查看这个问题,获取nginx的配置How configure nginx for rails app as subdomain?
首先将您想要的子 uri 路径放入 application.rb
即 main
...
config.relative_url_root = "/main"
...
在 config.ru
中添加这些行。
require ::File.expand_path('../config/environment', __FILE__)
map SampleApplication::Application.config.relative_url_root || "/" do
run Rails.application
end
在 production.rb
中,添加以下行。
# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "YOUR_DOMAIN_NAME/main"
# ActionMailer Config
config.action_mailer.default_url_options = {
:host => "YOUR_DOMAIN_NAME",
:only_path => false,
:script_name => "/main"
}
在 nginx 配置文件中,添加这些行
location /main {
alias /var/deploy/sample_application/current/public;
try_files $uri @main;
}
location @main {
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://puma_sample_application;
}
我们已经使用 Nginx 和 puma 为我们的 rails 应用设置了生产服务器。我们想在子 uri 和主域上部署我们的 rails 应用程序,我们想将 wordpress 用于主页、定价页面等。
我们如何配置我们的 rails 使其能够 运行 在具有 Devise gem 作为身份验证的子 uri 上。我们需要更改子 uri 的路由吗?
nginx 和 puma 的配置是什么?
提前致谢!
不,您根本不应该配置 rails 应用程序。 事实上,您只需更改您的 nginx 配置即可。
它应该将根域请求代理到您的 wordpress 应用程序,并将子域请求代理到您的 rails 应用程序。
查看这个问题,获取nginx的配置How configure nginx for rails app as subdomain?
首先将您想要的子 uri 路径放入 application.rb
即 main
...
config.relative_url_root = "/main"
...
在 config.ru
中添加这些行。
require ::File.expand_path('../config/environment', __FILE__)
map SampleApplication::Application.config.relative_url_root || "/" do
run Rails.application
end
在 production.rb
中,添加以下行。
# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "YOUR_DOMAIN_NAME/main"
# ActionMailer Config
config.action_mailer.default_url_options = {
:host => "YOUR_DOMAIN_NAME",
:only_path => false,
:script_name => "/main"
}
在 nginx 配置文件中,添加这些行
location /main {
alias /var/deploy/sample_application/current/public;
try_files $uri @main;
}
location @main {
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://puma_sample_application;
}