Tôi làm rất nhiều phát triển web trên mạng không tin cậy (coffeeshops, wifi của hàng xóm, DEF CON), và tôi giật mình khi ngẫu nhiên, phần mềm buggy chắc chắn (ứng dụng Rails của tôi đang phát triển) nói một cổng trên 0.0. 0,0 và bắt đầu nhận yêu cầu từ tất cả các người. Tôi biết rằng tôi có thể chỉ định địa chỉ của ràng buộc với tùy chọn -b cho máy chủ, nhưng tôi muốn thay đổi mặc định trên toàn cầu để nó luôn chạy theo cách đó trừ khi tôi nói nó theo cách khác. Tất nhiên tôi cũng có thể chạy một số loại tường lửa mà sẽ chặn các kết nối, nhưng tốt hơn không phải để nghe ở nơi đầu tiên. Có tệp '.railsrc' hay tương tự - ít nhất là tệp cài đặt cho mỗi dự án, nhưng tốt nhất là một số tệp cài đặt chung - mà tôi có thể sử dụng để buộc máy chủ chỉ liên kết với 127.0.0.1 theo mặc định?Có cách nào để dừng máy chủ tích hợp của Rails không nghe được trên 0.0.0.0 theo mặc định?
Trả lời
Bạn có thể cập nhật/script nộp/đường ray trong bạn ray ứng dụng để phản ánh như sau:
#!/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'
Điều này sẽ liên kết ứng dụng đường ray với -host.com khi khởi động. Bạn vẫn có thể ghi đè các tùy chọn từ dòng lệnh.
Tôi không chắc tại sao điều này không được phản ánh trong tài liệu Rails :: Server API. Bạn có thể xem https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb để xem triển khai máy chủ.
Lưu ý rằng trong Rails 4, tệp/script/rails đã được chuyển đến/bin/rails.
Đây chính xác là những gì tôi đang tìm kiếm - cảm ơn! –
Không có cách nào để thay đổi toàn cầu, bạn sẽ phải sử dụng -b
.
rails s -b <ip address>
Trên Rails 2: 'script/server -b
Sử dụng --binding=ip
tham số:
rails s --binding=127.0.0.1
https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb
Tôi biết tùy chọn đó - Tôi muốn có thể thay đổi nó trên toàn cầu, vì vậy tôi không phải chỉ định nó mỗi khi tôi xoay vòng máy chủ. –
Bạn có thể monkeypatch 'Rails :: Server :: Options # parse!' Được định nghĩa trong https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb trong trình khởi tạo trong ứng dụng hoặc thậm chí chỉnh sửa tệp đó trong đá quý trên hệ thống của bạn. – clyfe
- 1. Làm cách nào để dừng máy chủ Nghe trong Go
- 2. Có cách nào để tắt thời hạn được tích hợp trên Máy chủ ứng dụng dev_appserver không?
- 3. Cách kích hoạt Typesafe Activator để nghe 0.0.0.0:8888
- 4. Máy chủ Rails không hoạt động?
- 5. Làm thế nào để tôi thực hiện bitcoind nghe trên 0.0.0.0:8332?
- 6. có trình nghe mặc định trên thiết bị (trong thiết bị) mặc định trong Android không?
- 7. Có cách nào Rails 3.0.x có thể mặc định để sử dụng Thin không?
- 8. Mẫu thiết kế để tích hợp Rails với máy chủ Comet
- 9. Làm thế nào để dừng máy chủ mongodb trên Windows?
- 10. Làm cách nào để ngăn chặn tab "Máy chủ" của Eclipse lấy tiêu điểm khi khởi động/dừng máy chủ?
- 11. Rails Máy chủ IPv6
- 12. Làm thế nào để dừng máy chủ RabbitMQ trên máy chủ cục bộ
- 13. Có cách nào để làm điều gì đó như máy chủ rails --sandbox không?
- 14. Máy chủ có được tích hợp Flask an toàn để sử dụng trong sản xuất không?
- 15. Làm cách nào để dừng máy chủ heroku?
- 16. cách cấu hình cassandra để nghe cổng jmx trên địa chỉ ip thực và không phải 0.0.0.0?
- 17. Làm cách nào để bật số dòng theo mặc định trong TextWrangler trên máy Mac?
- 18. Lỗi máy chủ cục bộ Rails: Không có tệp database.yml
- 19. Làm thế nào để ngăn chặn netty nghe và chấp nhận trên ổ cắm máy chủ
- 20. Máy chủ SQL: Tìm giá trị mặc định của cột có truy vấn
- 21. Bài kiểm tra đơn vị và tích hợp có cùng tên theo mặc định
- 22. lỗi: cảnh báo: khai báo ngầm không tương thích của hàm tích hợp ‘memcpy’ [được bật theo mặc định]
- 23. Symfony2 với PHP 5.4 máy chủ tích hợp
- 24. Rails 3 Máy chủ trên EC2
- 25. Có cách nào để biết ngôn ngữ theo mặc định theo quốc gia trên miền địa phương không?
- 26. Cách xác định xem một cổng có được mở trên máy chủ Windows không?
- 27. Java Dừng máy chủ Chủ đề
- 28. Không có trường hợp kèm theo của loại Máy chủ có thể truy cập
- 29. Trên công cụ ứng dụng của Google (GAE), làm cách nào máy chủ của tôi có thể biết đó có phải là phiên bản mặc định không?
- 30. Làm cách nào để dừng Jetty
Nếu hệ điều hành của bạn hỗ trợ bí danh, chỉ cần sử dụng để chạy máy chủ thay thế. –