Thin Web-Server mit HTTP-und HTTPS
Ich bin mit der Thin-web-server zu dienen mein Rails-app.
- Starten Sie den server mit
thin start
dienthttp
Anfragen. - Starten Sie den server mit
thin start --ssl
dienthttps
Anfragen.
Gibt es eine Möglichkeit zu haben thin
dienen sowohl http
und https
Anforderungen gleichzeitig?
Der Grund warum ich Frage ist, weil wenn ich redirect_to some_path
in meinem Controller, leiten Sie zu http
. Da thin
dient https
Anfragen, nichts ist gerendert.
Hinweis: ich bin mit Rack::SSL
im Rails 3.0.7
.
- Einfachste Möglichkeit ist wahrscheinlich, um zwei separate Instanzen von dünne: eine Annahme von SSL-Anforderungen und eine Annahme Klartext-Anfragen. Irgendeinem Grund Sie nicht wollen, dies zu tun? (Alternativ, wenn dünner ausgeführt wird, hinter einem anderen web-server wie Apache oder Nginx, müssen Sie nur eine Instanz von Dünn: die frontend-server kann berichten, ob die Anfrage kam über SSL.)
- Sie kann nicht laufen zwei Instanzen von
thin
auf dem gleichen port. - Sie können nicht akzeptieren, HTTP-und HTTPS-verbindungen auf dem gleichen port, entweder. (Dies ist der Grund, warum standardmäßig Konvention, HTTP läuft auf port 80, während HTTPS läuft über port 443.)
- Ah, du hast Recht! Ich war verwirrt, weil die ports 80 und 443 sind ausgeblendet, da Sie dem Standard. Vielleicht brauche ich, um herauszufinden, wie die Kraft
redirect_to
zu schieben Benutzer, umhttps
statt. Wenn Sie konvertieren möchten, Ihren Kommentar oben in einer Antwort, ich werde es akzeptieren. - Ich habe HTTP läuft auf port 3000 und HTTPS läuft über port 3001. Wie würden Sie ein "smart-redirect" Richtlinie für die Entwicklungsumgebung, so dass Umleitungen von HTTP auf HTTPS ändert sich auch der Hafen von 3000 bis 3001? Vielen Dank 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Kommentar umgewandelt zu beantworten, wie verlangt.)
Einfachsten ist es wohl, um zwei separate Instanzen von dünne: eine Annahme von SSL-Anforderungen und eine Annahme Klartext-Anfragen. Irgendeinem Grund Sie nicht wollen, dies zu tun? (Alternativ, wenn dünner ausgeführt wird, hinter einem anderen web-server wie Apache oder Nginx, müssen Sie nur eine Instanz von Dünn: die frontend-server kann berichten, ob die Anfrage kam über SSL.)
Sie nicht akzeptieren können sowohl HTTP-als auch HTTPS-verbindungen auf dem gleichen port. (Dies ist der Grund, warum standardmäßig Konvention, HTTP läuft auf port 80, während HTTPS läuft über port 443.)
können Sie verwenden, Vorarbeiter (https://github.com/ddollar/foreman);
Erstellen Sie ein Procfile mit 2-Prozess wird dann beginnen beide mit
forman start
Befehl.setzen Sie diese auf eine Datei namens
Procfile
:Dann verwenden
foreman start
und er start der 2-Prozeß.Dies ist, wie ich bin mit... hoffe, das hilft dir weiter!!
thin start --ssl -p 3001
, wie Sie intelligent zu verarbeiten, Umleitungen von http auf https in Ihrer Anwendung?