Hago mucho desarrollo web en redes que no son de confianza (coffeeshops, wifi abierto de los vecinos, DEF CON), y me pongo nervioso cuando el software al azar, con errores (mi aplicación Rails en desarrollo, digamos) enlaza un puerto en 0.0. 0.0 y comienza a recibir solicitudes de todos los interesados. Sé que puedo especificar la dirección de enlace con la opción -b en el servidor, pero me gustaría cambiar el valor predeterminado de forma global para que siempre se ejecute de esa manera, a menos que le diga lo contrario. Por supuesto, también puedo ejecutar algún tipo de firewall que bloqueará la conexión, pero es mejor no escuchar en primer lugar. ¿Hay un archivo '.railsrc' o similar, al menos un archivo de configuración por proyecto, pero preferiblemente algún archivo de configuración global, que pueda usar para forzar al servidor a vincularse solo a 127.0.0.1 de manera predeterminada?¿Hay alguna forma de evitar que el servidor integrado de Rails escuche en 0.0.0.0 de forma predeterminada?
Respuesta
puede actualizar el/escritura de archivos/rieles en que los carriles de aplicación para reflejar lo siguiente:
#!/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'
Esto vinculará la aplicación de rieles a mi -host.com cuando se inicia. Todavía puede anular las opciones desde la línea de comando.
No estoy seguro de por qué esto no se refleja en los documentos de Rails :: Server API. Puede echar un vistazo al https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb para ver la implementación del servidor.
Tenga en cuenta que en Rails 4, el archivo/script/rails se ha movido a/bin/rails.
Esto es exactamente lo que estaba buscando, ¡gracias! –
No hay forma de cambiarlo globalmente, tendrá que usar -b
.
rails s -b <ip address>
On Rails 2: 'script/server -b
Utilice la --binding=ip
parámetro:
rails s --binding=127.0.0.1
https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb
Conozco esa opción: me gustaría poder cambiarla globalmente, así que no tengo que especificarla cada vez que hago girar la servidor. –
Puede parchear 'Rails :: Server :: Options # parse!' Definido en https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb en un inicializador en su aplicación, o incluso editar ese archivo en la gema en su sistema. – clyfe
- 1. ¿Hay alguna forma de evitar que Javascript falle silenciosamente?
- 2. ¿Existe alguna manera de que Rails 3.0.x pueda usar de forma predeterminada Thin?
- 3. Simplemente curioso, ¿hay alguna forma de evitar MustOverride en C#?
- 4. ¿Cómo hago para que bitcoind escuche en 0.0.0.0:8332?
- 5. ¿Hay alguna forma de 'resaltar' el código?
- 6. ¿Hay alguna forma de pasar el iPhone?
- 7. Bloques del objetivo C: ¿Hay alguna forma de evitar que se retenga el "yo"?
- 8. ¿Hay alguna forma de evitar que TinyMCE se enfoque automáticamente en la carga de la página?
- 9. ¿Hay alguna forma de suprimir el VS que intenta conectarse?
- 10. ¿Hay alguna forma de evitar que las páginas de AJAX se vean solos en un navegador?
- 11. ¿Hay alguna forma de cancelar TabControl.Items.CurrentChanging?
- 12. ¿Hay alguna forma de currying en C?
- 13. ¿Hay alguna forma de sobrecargar + = en python?
- 14. ¿Hay alguna forma de vincular Keyboard.FocusedElement?
- 15. ¿Hay alguna forma de evitar que las sombras de CALayer se superpongan a capas adyacentes?
- 16. ¿Hay alguna forma de evitar que una excepción SystemExit generada a partir de sys.exit() quede atrapada?
- 17. ¿Hay alguna forma de evitar las pérdidas de memoria por falta de implementación en Tomcat?
- 18. ¿Hay alguna forma de usar un control personalizado en el diseñador y evitar el GAC?
- 19. Django 0.0.0.0:80; no puedo acceder de forma remota
- 20. ¿Hay alguna forma de comprobar que existe una asociación has_ many en Rails 3.1?
- 21. C#: ¿Hay alguna forma de evitar el límite de 260 caracteres de una ruta completa?
- 22. ¿Hay alguna forma de obtener la cadena de agente de usuario predeterminada aparte de WebView.getSettings(). GetUserAgentString()?
- 23. Acerca de IP 0.0.0.0 en Django
- 24. ¿Hay alguna forma de multirreproducir un SqlDataReader?
- 25. ¿Hay alguna forma de evitar que AlertDialog se cierre con entradas no válidas?
- 26. ¿Hay alguna forma de sincronizar archivos gif?
- 27. ¿Hay alguna forma de que jadclipse funcione con Eclipse 3.4?
- 28. ¿Hay alguna forma de que YQL devuelva HTML?
- 29. ¿Hay alguna forma de silenciar la función 'espera' en Matlab
- 30. ¿Hay alguna forma mejor de escribir esto?
Si su sistema operativo admite alias, solo use eso para ejecutar el servidor. –