Ruby on rails 使用capistrano将带有子域的Rails部署到nginx/unicorn设置——如何?
我一直在关注Ryan B的VPS部署railscast: 他建议使用的nginx.conf文件不适用于子域。这就是他所展示的:Ruby on rails 使用capistrano将带有子域的Rails部署到nginx/unicorn设置——如何?,ruby-on-rails,deployment,nginx,subdomain,unicorn,Ruby On Rails,Deployment,Nginx,Subdomain,Unicorn,我一直在关注Ryan B的VPS部署railscast: 他建议使用的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>
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;
}
上游独角兽{
服务器unix:/tmp/unicorn.blog.sock失败\u超时=0;
}
服务器{
倾听80个默认延迟;
#server_name example.com;
root/home/deployer/apps//current/public;
地点^ ~/资产/{
gzip_静态开启;
最大值;
添加_头缓存控制公共;
}
试试看文件$uri/index.html$uri@unicorn;
地点@独角兽{
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
代理设置头主机$http\U主机;
代理_重定向关闭;
代理通行证http://unicorn;
}
错误\u第500页502 503 504/500.html;
客户机最大机身尺寸4G;
保持激活超时10;
}
有人知道如何设置以支持子域吗?您可以取消注释行:
#server_name example.com代码>
将example.com替换为您的域并添加:
server_name example.com*.example.com代码>
或
server\u name example.com blog.example.com代码>
现在,对域和子域的所有请求都将转到rails,您可以取消注释行:
#server_name example.com代码>
将example.com替换为您的域并添加:
server_name example.com*.example.com代码>
或
server\u name example.com blog.example.com代码>
现在,所有对域和子域的请求都将转到rails(至少在linode.com上是这样),处理通配符子域非常简单。您只需将*
主机添加到a记录
此外,在nginix中,我所做的被替换为:
# server_name example.com;
与:
我甚至不确定这是否需要
我的实际问题与主机或nginx无关。我的情况是,我在注册期间使用了一个随机散列URL作为安全令牌(因此用户不能劫持现有子域),但我使用的散列类型有问题,因此我需要修改它
我没有看到任何错误,只是被重定向回注册页面——这是哈希URL出现问题/不匹配时的正确行为
不管怎样,一旦我解决了这个问题,整个子域的事情就不是问题了
希望这能帮助其他使用散列URL、子域的人,并且通常是部署新手
干杯。事实证明(至少在linode.com上),处理通配符子域非常简单。您只需将*
主机添加到a记录
此外,在nginix中,我所做的被替换为:
# server_name example.com;
与:
我甚至不确定这是否需要
我的实际问题与主机或nginx无关。我的情况是,我在注册期间使用了一个随机散列URL作为安全令牌(因此用户不能劫持现有子域),但我使用的散列类型有问题,因此我需要修改它
我没有看到任何错误,只是被重定向回注册页面——这是哈希URL出现问题/不匹配时的正确行为
不管怎样,一旦我解决了这个问题,整个子域的事情就不是问题了
希望这能帮助其他使用散列URL、子域的人,并且通常是部署新手
干杯