2012-04-26 53 views
1

我一直在关注瑞安B的VPS部署railscast:将capistrano的子域部署到nginx/unicorn设置 - 如何?

http://railscasts.com/episodes/335-deploying-to-a-vps

nginx.conf文件,他建议使用不使用子工作。这是他显示:

upstream unicorn { 
    server unix:/tmp/unicorn.blog.sock fail_timeout=0; 
} 

server { 
    listen 80 default deferred; 
    # server_name example.com; 
    root /home/deployer/apps/<app name>/current/public; 

    location ^~ /assets/ { 
    gzip_static on; 
    expires max; 
    add_header Cache-Control public; 
    } 

    try_files $uri/index.html $uri @unicorn; 
    location @unicorn { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://unicorn; 
    } 

    error_page 500 502 503 504 /500.html; 
    client_max_body_size 4G; 
    keepalive_timeout 10; 
} 

有谁知道如何设置支持子域的东西?

回答

0

事实证明(至少在linode.com中),handeling的通配符子域非常简单。您只需将一台*主机添加到A记录。

此外,在nginix,我所做的就是更换:

# server_name example.com; 

有:

server_name localhost; 

我不知道,甚至需要。

我的实际问题与主机或nginx无关。我的情况是,在注册期间我使用随机哈希URL作为安全性令牌(因此用户不能劫持现有的子域),但是我使用的哈希类型存在问题,所以我需要修改它。

我没有看到任何错误,我只是被重定向回注册页面 - 正如散列URL有问题/不匹配时的正确行为。

无论如何,一旦我解决了这个问题,整个子域的事情就不成问题了。

希望这可以帮助其他任何使用散列URL,子域名并且通常对于部署不熟悉的人。

干杯。

1

您可以取消行:

# server_name example.com;

与您的域名替换example.com和补充:

server_name example.com *.example.com;

server_name example.com blog.example.com;

现在,所有的请求域和子域名将转到导航栏