Tech Support

Bereitstellung

Wie greife ich mit ssh auf mein Konto zu?

Der SSH Dienst läuft bei ssh.railscluster.nl auf Port 2222. Benutzen sie den folgenden Befehl von der Kommandozeile:
ssh account@ssh.railscluster.nl -p 2222

Wie sieht eine geignete deploy.rb aus?

Sie können mit dem folgenden Rezept beginnen:

# Ersetzen sie ACCOUNT mit Ihrem Konto
set :user, "ACCOUNT"

set :deploy_to, "/home/#{user}/web_root"
set :use_sudo, false

ssh_options[:port] = 2222
default_run_options[:pty] = false

server "ssh.railscluster.nl", :app, :web, :db, :primary => true

namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_release}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end

  task :restart, :roles => :app do
    run "touch #{current_release}/tmp/restart.txt"
  end
end

Wie kann Ich den startup beschleunigen?

Löschen sie das vendor/rails Verzeichnis, falls sie eins haben. RailsCluster stellt sämtliche Versionen von Ruby on Rails zur Verfügung. Dadurch wird der startup beschleunigt und müssen sich nicht darum kümmern.

RailsCluster überprüft mindestens all 10 Sekunden, ob Ihre Anwendung neugestartet werden muss.

Wo gehören meine Anwendungen hin?

Die aktuellste Version von Ruby on Rails oder Rack Anwendungen sollte in ~/web_root/current untergebracht werden, so dass ~/web_root/current/public erreichbar ist.

PHP sollten in ~/web_root/current/public untergebracht werden.

Für die Bereitstellung empfehlen wir Ihnen Capistrano zu benutzen. Die capistrano und capitrano-ext Gems sind standardmäßig bei RailsCluster installiert.

Warum wird während der Bereitstelung meine Verbindung zurückgetzt?

Um dieses Problem zu lösen, konfigurieren sie SSH dazu regelmäßig keep-alive Pakete zu senden. Das können sie erreichen indem sie folgende Zeilen zu Ihrer ~/.ssh/config hinzufügen:

ServerAliveInterval 15

Warum habe Ich keinen Zugang zu meiner Anwendung?

Problem: Forbidden - You don't have permission to access / on this server.
Lösung: Die Dateizugangsberechtigungen sind inkorrekt gesetzt, die vollständige Anwendung ist noch nicht hochgeladen oder die index.html Datei ist nicht im public Verzeichnis. Bitte stellen sie sicher, dass Dateien chmod 644 und Verzeichnisse chmod 755 haben und das die Anwendung oder ~/web_root/current/public/index.html vorhanden und vollständig ist.

Wie starte Ich meine Anwendung neu?

Es gibt zwei Möglichkeiten eine RailsCluster Anwendung neu zu starten. Erstens können sie das Kommando touch ~/web_root/current/tmp/restart.txt über SSH benutzen. Außerdem ist es möglich den Capistrano Task aus dem obstehenden Rezept zu benutzen.

Wie führe Ich cron scripts aus?

Die folgenden zwei Punkte müssen beachtet werden.

  • Konfigurieren sie den korekten Pfad zum Ruby Interpreter. Ohne diesen Pfad können sie weder rake Kommandos ausführen noch auf die installierten RubyGems zugreifen.
  • Benutzen sie /usr/local/bin/cluster_task um sicherzustellen, dass die Skripte nicht parallel laufen. Dadurch werden Race Conditions verhindert und die Ausführung beschleunigt.

Beispiel:

PATH=/opt/ruby-enterprise/bin:/usr/local/bin:/usr/bin:/bin
0 * * * * /usr/local/bin/cluster_task rake cron:hourly

Oder mit nicknames:

PATH=/opt/ruby-enterprise/bin:/usr/local/bin:/usr/bin:/bin
@hourly /usr/local/bin/cluster_task rake cron:hourly

Wie kann Ich rake Kommandos mit Capistrano ausführen?

Fügen sie folgendes Capistrano Rezept hinzu: default_run_options[:pty] = false

Warum bekomme ich Net::SFTP::StatusExceptionwenn Ich SFTP uploads mit Cappistrano mache?

Fügen sie die folgenden Zeilen zu Ihrer deploy.rb hinzu: set :deploy_to, "/home/#{user}/web_root"

Welche Frameworks kann Ich mit RailsCluster benutzen?

Da RailsCluster mit Phusion Passenger betrieben wird, unterstützen wir jedes Framework, das die RackSchnittstelle implementiert. Das bedeutet, dass RailsCluster außer Ruby on Rails Camping, Halcyon, Mack, Merb, Ramaze und Sinatra unterstützt werden.

zurück nach oben

Datenbanken

Welche Datenbank sollte Ich benutzen?

Für jedes Konto erstelt RailsCluster eine MySQL und eine PostgreSQL Datenbank. Neben den typischen Unterschieden zwischen den beiden Datenbanken gibt es bei RailsCluster einen infrastrukturbedingten Unterschied. MySQL hat eine master-slave Koniguration mit automatischen Failover, während PostgreSQL eine lastausgleichende multi-master Konfuguration mit Degeneration hat.
Aus diesem Unterschied ergibt sich, dass PostgreSQL Leseoperationen doppelt so schnell ausführt, bei Schrieboperationen aber 7-15% langsamerist. Das Profil Ihrer Webanwendung ist entscheidend bei der Wahl der Datenbank.

Welche MySQL Datenbank engine sollte Ich benutzen?

Falls sie sich für eine MySQL Datenbank entschieden haben empfehlen wir Ihnen die InnoDB Datenbankengine. Die InnoDB Relationen sind transaktionsbasiert und wurden entworfen um die Integrität der Datenbank sicherzustellen. MyISAM relations bietet dieses Feature nicht an. Deswegen kann weder MyISAM noch RailsCluster garantieren, dass im Falle des Ausfalls eines Knotens keine Daten korrumpiert werden.

Welche Datenbank Versionen werden bei RailsCluster benutzt?

Im Moment wird MySQL 5.1 verwendet. Der Server wurde für InnoDB Tabellen optimiert.
Im Moment wird PostgreSQL 8.4 zur Verfügung gestellt.

Ich kann mich nicht mit dem MySQL Server verbinden!

Problem: 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
Lösung: MySQL läuft auf einem seperaten Host namens ‘mysql’. Deswegen muss der Hostname korrekt in der database.yml gesetzt werden:

production:
  host: mysql

Ich kann mich nicht mit dem PostgreSQL server verbinden!

Problem: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.0"?
Lösung: PostgreSQL läuft auf einem seperaten Host namens ‘postgresql’. Deswegen muss der Hostname korrekt in der database.yml gesetzt werden:

production:
  host: postgresql
zurück nach oben

Daemons

Werden Daemons unterstützt?

Ja, Daemons werden für eine zusätzliche monatliche Gebühr unterstützt. Wir versorgen sie mit den Skripts und Zugangsrechten um die Daemons clustergerecht zu starten. Unter den getesteten Daemons befinden sich Ferret, memcached und Sphinx. Bitte setzen sie sich mit uns in Verbindung um weitere Information zu erhalten.

Wie kann ich meine Daemons steuern?

Wenn ise die entsprechenden Zugangsrechte haben können sie die Daemons durch cluster_service [daemon] {start|stop|restart|status} steuern.

Wie kann Ich eine erbindung zu meinen Daemons herstellen?

Wenn sie die entsprechenden Zugangsrechte haben und der Daemon korrekt gestartet wurde können sie sich unter daemon.railscluster.nl auf den Daemon zugreifen. Der Zugang ist nur innerhalb der RailsCluster Platform gestattet.

Bitte merken sie sich auf welchem Port Ihr Daemon Dienst läuft. Das wurde Ihnen mitgeteilt, als Daemons für Ihr Konto aktiviert wurden. In Abhängigkeit von Ihrem spezifischen Daemon können sie die Konfiguration mit ~/bin/cluster_[daemon]_wrapper oder ~/etc/[daemon].conf anschauen.

zurück nach oben