【发布时间】: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