【问题标题】:Hosting Rails app on Thins, Nginx on a sub uri, behind a reverse proxy在 Thins 上托管 Rails 应用程序,在子 uri 上托管 Nginx,在反向代理后面
【发布时间】:2013-10-25 16:01:52
【问题描述】:

背景

对于我的工作,我们有两个不同的网络,开发者网络和一般公司网络。我需要向两者公开 rails 应用程序,在子 uri 下运行,以便通用网络上的人们可以从 foo.bar.com/{app_name} 访问应用程序,并从 http://{ 访问开发者网络server_name}.{dev_network}.dev/{app_name}。遗憾的是,我们不允许使用Passenger,因为这是一个企业应用程序。

目前,我的应用程序在子 uri 上运行,并且可以从两个网络访问,但我遇到了错误。我将列出我看到的错误,然后是我创建的 nginx 配置,以及使用 sub uri 的 rails_app 配置。

问题

  • 转到 {app_name}/foo/1 - 页面上的所有图像都从 {app_name}/foo/{app_name}/assets 获取......这仅发生在 RESTful 服务的显示页面.
  • 在任一网络上刷新页面都会重新加载页面,但会删除附加到该页面的所有样式和 js 文件。转到另一个链接不会影响样式,除了上面提到的问题。

配置

Nginx VHost in sites-available,符号链接到启用的站点。

upstream claxon {
    server 127.0.0.1:3000;
}

server {

    listen 80;
    server_name claxon;
    root /var/www;

    location ~* ^/claxon/ {
            alias /var/www/claxon/public;
            proxy_pass http://claxon;
    }

    location ^~ /assets/ {
            root /var/www/claxon/public/claxon;
    }

    location ^~ /original_user_images/ {
            root /var/www/claxon/public/claxon;
    }
}

Rails 应用程序

config/initializers/mount_location.rb

if Rails.env.production?
  Rails.application.config.relative_url_root = '/claxon'
end

config.ru

map Rails.application.config.relative_url_root || '/' do
  run Rails.application
end

config/environments/production.rb

# Configures assets to be compiled under public/claxon/assets
config.assets.prefix = 'claxon/assets'

其他详情

  • 此应用程序正在使用 capistrano 部署到服务器,并且 当前文件夹被符号链接到 /var/www/claxon 文件夹。
  • 此应用使用carrierwave 上传用户图片。

【问题讨论】:

    标签: ruby-on-rails ruby nginx ruby-on-rails-4 reverse-proxy


    【解决方案1】:

    这个问题的答案是最终将 rails 应用程序配置为从“asset_host”服务资产。我将资产主机url设置为与从企业网络连接到服务器一样,因为其中包含开发者网络,但企业网络看不到开发网络。以这种方式配置它允许两个网络接收资产,并在刷新时工作。

    production.rb 文件中的这个最终配置就是这样。

    # Enable serving of images, stylesheets, and JavaScripts from an asset server.
    config.action_controller.asset_host = "https://foo.bar.com/claxon/"
    

    这允许从https://foo.bar.com/claxon/claxon/assets/....派生所有资产

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      相关资源
      最近更新 更多