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"
Есть простой способ сделать это?
спасибо за помощь на одном сервере :) –