1

我一直在关注 Ryan B 的 VPS 部署 railscast:

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;
}

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

4

2 回答 2

1

您可以取消注释行:

# server_name example.com;

将 example.com 替换为您的域并添加:

server_name example.com *.example.com; 或者

server_name example.com blog.example.com;

现在所有对域和子域的请求都将进入 rails

于 2012-04-27T08:22:30.467 回答
0

事实证明(至少对于 linode.com),处理通配符子域非常简单。您只需将*主机添加到 A 记录。

另外,在 nginix 中,我所做的被替换了:

# server_name example.com;

和:

server_name localhost;

我不确定这是否需要。

我的实际问题与主机或 nginx 无关。我的情况是我在注册期间使用随机散列 URL 作为安全令牌(因此用户无法劫持现有子域),但我使用的散列类型存在问题,因此我需要对其进行修改。

我没有看到任何错误,我只是被重定向回注册页面——当哈希 URL 有问题/不匹配时,这是正确的行为。

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

希望这可以帮助其他使用散列 URL、子域并且通常是部署新手的人。

干杯。

于 2012-04-27T11:21:25.473 回答