2012-05-30 3 views
1

I used this railscast as a basisКапистрано развертывания на нескольких серверах с переменной различными подобласти

# nginx_unicorn.erb 
upstream unicorn-<%= application %> { 
    server unix:/tmp/unicorn.<%= application %>.sock fail_timeout=0; 
} 

server { 
    listen <%= subdomain ? subdomain : application %>.example.com:443 ssl; 
    server_name <%= subdomain ? subdomain : application %>.example.com; 
    root <%= current_path %>/public; 
    ssl     on; 
    ssl_certificate  /opt/nginx/ssl/example.com.pem; 
    ssl_certificate_key /opt/nginx/ssl/example.com.key; 
    ssl_protocols SSLv3 TLSv1; 
    ssl_ciphers ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP; 
    ssl_session_cache shared:SSL:10m; 
    try_files $uri/index.html $uri @unicorn; 

    location ^~ /assets/ { 
    gzip_static on; 
    expires max; 
    add_header Cache-Control public; 
    } 
    location @unicorn { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-Forwarded-Proto https; 
    proxy_redirect off; 
    proxy_pass http://unicorn-<%= application %>; 
    } 

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

я установил переменную SUBDOMAIN в deploy.rb

# deploy.rb 
... 
role :web, "avps.example.com", "bvps.example.com", "cvps.example.com" 
role :app, "avps.example.com", "bvps.example.com", "cvps.example.com" 
role :db, "avps.example.com", "bvps.example.com", "cvps.example.com", :primary => true 
set :subdomain, "atsp" 
... 

Это прекрасно работает, когда я только развернуть на одном сервере, но Я хотел бы иметь возможность основывать это на текущем сервере, на котором он развертывается, поэтому, если бы это был avps.example.com, он бы:

set :subdomain, "atsp" 

или если бы bvps.example.com, было бы сделать:

set :subdomain, "btsp" 

Есть простой способ сделать это?

+0

спасибо за помощь на одном сервере :) –

ответ

0

Я думаю, что вы ищете многоэтапное развертывание Capistrano. Вы можете найти страницу wiki here. Все, что вам нужно сделать, это переместить

set :subdomain, "atsp" 

в файл (например. Конфиг/развернуть/atsp.rb) с информацией о сервере, а затем можно развернуть на этом сервере с

cap atsp deploy 

Надеюсь это поможет.

Смежные вопросы