【问题标题】:routing to a rails subdomain路由到 rails 子域
【发布时间】:2014-03-04 18:42:02
【问题描述】:

我有一个域,比如说 example.com,我想创建一个子域,例如 page.example.com

我在 rails routes.rb 文件中添加了一条路线:

class MySubDomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain == ("page" || "page.example.com")
  end
end

MyApp::Application.routes.draw do
  constraints(MySubDomain) do
    get '/' => 'static_pages#some_page'
  end

  root to: 'something#else'

当我浏览开发中的 page.example.com(使用 pow)时,它会落在相应的控制器上。对于生产,我创建了一个 DNS 条目,例如:

page.example.com记录指向VPS的IP

当我在浏览器中点击 page.example.com 时,它只会将我发送到 example.com

当我卷曲 page.example.com 时,响应就是我所期望的。

我的nginx配置如下:

upstream example.com {server unix:/tmp/benchmark_app.sock fail_timeout=0;}

server_names_hash_bucket_size  64;

server {
        listen 80;
        listen [::]:80 default_server ipv6only=on;
        root /home/deploy/example/public;
        server_name example.com page.example.com;

        location / {
          proxy_pass http://unix:/home/deploy/example/shared/sockets/puma.sock;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404;
        error_page 500 /500;
}

编辑:我已经更改了路由,添加了 curl 响应并添加了 nginx 配置。

【问题讨论】:

    标签: ruby-on-rails nginx dns


    【解决方案1】:

    也许网络服务器设置为将所有子域重定向到顶级域?

    即与此类似的问题:Why is my subdomain redirecting to my main domain?

    【讨论】:

    • 我已经添加了我的 nginx 配置。
    【解决方案2】:

    我将通过修改您的主机文件(添加“127.0.0.1 test.example.com”)在本地测试这些更改,然后点击它以检查它是 Rails 问题还是 Web 服务器问题。

    GL

    【讨论】:

    • 您可以更轻松地使用 lvm.me 域。 lvh.me 和所有子域都指向 127.0.0.1。无需无休止地修改您的主机文件。
    • 我使用战俘。这意味着我已经可以访问 example.dev 和 page.example.dev。如前所述,它适用于 pow。
    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2011-04-09
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多