Realizzo molto web su reti non fidate (coffeeshop, wifi aperto dei vicini, DEF CON), e ottengo un po 'di eccitazione quando il software è casuale, buggy (la mia app Rails in sviluppo, per esempio) lega una porta su 0.0. 0.0 e inizia a ricevere richieste da tutti gli altri. So che posso specificare l'indirizzo di associazione con l'opzione -b al server, ma vorrei cambiare l'impostazione predefinita a livello globale in modo che venga sempre eseguita in quel modo, a meno che non lo dica diversamente. Naturalmente posso anche eseguire una specie di firewall che bloccherà la connessione, ma meglio non ascoltare in primo luogo. Esiste un file '.railsrc' o simile - almeno un file di impostazioni per progetto, ma preferibilmente un file di impostazioni globali - che posso usare per forzare il server a collegarsi solo a 127.0.0.1 per impostazione predefinita?C'è un modo per impedire che il server integrato di Rails ascolti su 0.0.0.0 di default?
risposta
è possibile aggiornare la/script file/binari in te applicazione Rails per riflettere la seguente:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
# START NEW CODE
require "rails/commands/server"
module Rails
class Server
def default_options
super.merge({
:Host => 'my-host.com',
:Port => 3000,
:environment => (ENV['RAILS_ENV'] || "development").dup,
:daemonize => false,
:debugger => false,
:pid => File.expand_path("tmp/pids/server.pid"),
:config => File.expand_path("config.ru")
})
end
end
end
# END NEW CODE
require 'rails/commands'
Ciò vincolerà l'app per i binari al mio -host.com all'avvio. È comunque possibile ignorare le opzioni dalla riga di comando.
Non sono sicuro del motivo per cui ciò non si riflette nei documenti Rails :: Server API. Puoi dare un'occhiata a https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb per vedere l'implementazione del server.
Si noti che in Rails 4, il file/script/rails è stato spostato in/bin/rails.
Questo è esattamente quello che stavo cercando - grazie! –
Non c'è modo di cambiarlo a livello globale, sarà necessario utilizzare -b
.
rails s -b <ip address>
On Rails 2: 'script/server -b
utilizzare il parametro --binding=ip
:
rails s --binding=127.0.0.1
https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb
Sono consapevole di questa opzione - Mi piacerebbe poterlo modificare a livello globale, quindi non devo specificarlo ogni volta che faccio girare il server. –
È possibile eseguire il monkeypatch di 'Rails :: Server :: Options # parse!' Definito in https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb in un inizializzatore nel proprio applicazione, o persino modificare quel file nella gemma del tuo sistema. – clyfe
- 1. Cosa ti costa acquistare un Rails Server su 0.0.0.0?
- 2. Come posso fare in modo che il server nodejs ascolti AWS SQS?
- 3. Come posso ottenere che il server Web di Kestrel ascolti le richieste di non localhost?
- 4. Qual è la differenza tra l'avvio di un binding server su 0.0.0.0 vs 127.0.0.1?
- 5. Loopback - Il modo più semplice per estendere un modello integrato
- 6. Rails testing host richiesta di default
- 7. E 'possibile fare in modo che Spring ApplicationListener ascolti per 2 o più tipi di eventi?
- 8. C'è un modo per ottenere il tempo trascorso su cui è stato eseguito un server Rails?
- 9. Impedire al client di sovraccaricare il server?
- 10. Primavera jsessionid avvio di configurazione personalizzata per server integrato
- 11. Bind rails server su 127.0.0.1 per impostazione predefinita
- 12. modo idiomatico per impostare il valore di default in javascript
- 13. Utilizzo di phpdbg con il server php integrato?
- 14. Buon server SMTP su Windows per un server di produzione
- 15. Come configurare il mio log Django in modo che funzioni come il log del server di sviluppo integrato?
- 16. Docker con server integrato php
- 17. Informazioni su IP 0.0.0.0 in Django
- 18. Sia massimizzare che impedire il ridimensionamento su un JFrame?
- 19. C'è un modo per impedire a Play di ricaricarsi automaticamente?
- 20. C'è un modo per fare qualcosa come il server di rails --sandbox?
- 21. modo migliore per rendere Flask-Accesso di login_required il default
- 22. Gioca! il framework ha un meccanismo integrato per prevenire il dirottamento di sessione?
- 23. java rmi -Djava.rmi.server.hostname = localhost apre ancora un socket in ascolto su 0.0.0.0
- 24. Database per un sistema integrato
- 25. Ruby on Rails javascript_include_tag: default
- 26. Come rendere il server di sviluppo webpack eseguito sulla porta 80 e su 0.0.0.0 per renderlo pubblicamente accessibile?
- 27. C'è un modo per impedire che il blocco dei caratteri modifichi la famiglia di caratteri (e cambi solo il colore)?
- 28. Rails Server IPv6
- 29. SQL Server XQuery con namespace di default
- 30. Costruisci il sistema per un progetto C/C++ integrato
Se il sistema operativo supporta gli alias, è sufficiente utilizzarlo per eseguire il server. –