system("bundle exec thin -s #{numproc} -S /tmp/#{ENV['USER']}.socket -e #{Rails.env} start >/dev/null")
upstream rel6sa_cluster {
server unix:/tmp/rel6sa.0.socket;
server unix:/tmp/rel6sa.1.socket;
server unix:/tmp/rel6sa.2.socket;
server unix:/tmp/rel6sa.3.socket;
server unix:/tmp/rel6sa.4.socket;
}
server {
listen <IP>:80;
server_name <ИМЯ СЕРВЕРА>;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen <IP>:443 ssl;
server_name <ИМЯ СЕРВЕРА>;
root /<ПАПКА PUBLIC проекта>;
ssl_certificate "/etc/ssl/SSL.crt";
ssl_certificate_key "/etc/ssl/SSL.key";
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if (-f $request_filename) { break; }
location / {
try_files /system/maintenance.html $uri/index.html $uri.html $uri @cluster;
}
location @cluster {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://rel6sa_cluster;
}
}
$ cat lib/tasks/db.rake
namespace :db do
desc "Установить все счётчики ID в актуальное значение"
task :reset_seq => :environment do
query = "SELECT 'SELECT SETVAL(' ||quote_literal(quote_ident(S.relname))|| ', MAX(' ||quote_ident(C.attname)|| ') ) FROM ' ||quote_ident(T.relname)|| ';'
FROM pg_class AS S, pg_depend AS D, pg_class AS T, pg_attribute AS C
WHERE S.relkind = 'S'
AND S.oid = D.objid
AND D.refobjid = T.oid
AND D.refobjid = C.attrelid
AND D.refobjsubid = C.attnum
ORDER BY S.relname;"
ActiveRecord::Base.connection.execute(query).each{ |s| ActiveRecord::Base.connection.execute(s["?column?"])}
end