olarak bağlanıyorum Kök imtiyazları olan tüm sunucuyu çalıştırmak zorunda kalmadan, üretim Rails sunucumu bağlantı noktası 80'e bağlama yöntemini bulmaya çalışıyorum. Sorum, temel olarak "Is there a way for non-root processes to bind to "privileged" ports (<1024) on Linux?" ile aynı, ancak bunu Rails ile yapmam gerekiyor. Şu anda, başvurulan sorudaki en önemli iki yanıt, CAP_NET_BIND_SERVICE
iznini Ruby yorumlayıcısına (muhtemelen iyi bir fikir değil) veya sunucuyu başlattıktan sonra (I'm not sure is possible with Ruby) sunucuya bırakma izni vermemi şart koşmaktadır. Herhangi bir fikir?Bir Rails sunucusunu Linux'ta bağlantı noktası 80'e bağlamadan, bağlantı noktası
5
A
cevap
4
Temel olarak, cevap siz değilsiniz. Bu işi yapmak için gerçekten çok şanslı bir yol var, ancak bunu yapmak istediğiniz gerçekler aşırı derecede düşük. Bunun yerine, Rails'i ayrıcalıklı olmayan bir bağlantı noktasında çalıştırın ve Rails'e yönlendirmek için nginx gibi gerçek bir web sunucusu kurun. senin altyapı daha esnek hale getirir, çünkü
upstream rails_server {
server localhost:3000;
}
server {
listen 80;
location/{
root /home/deploy_user/rails_app/public;
try_files $uri @missing;
}
location @missing {
proxy_pass http://rails_server;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
Bu çözüm aynı zamanda daha uzun süreli geçerli: son derece basit bir örnek olarak
, nginx ile sen şuna benzer bir yapılandırma dosyası kullanabilirsiniz. Örneğin, uygulamanızı birden fazla makineye ölçeklendirmeniz gerekiyorsa, nginx'i yük dengeleyici olarak kullanabilir ve farklı makinelerde çalışan bir grup Rails sunucusuna isteklerini iletebilirsiniz.İlgili konular
- 1. "Bağlantı noktası" için geçersiz çıkış veya giriş bağlantı noktası bağlantısı "
- 2. Python bağlantı noktası bağlama
- 3. PDO Bağlantı Noktası Ofset
- 4. change pgsql bağlantı noktası
- 5. bağlantı noktası bulunamadı
- 6. Bağlantı noktası açık ve PHP
- 7. Tensorflow Tensorboard varsayılan bağlantı noktası
- 8. Android Bluetooth COM bağlantı noktası
- 9. Yüzen eylem düğmesi bağlantı noktası
- 10. Devserver bağlantı noktası nasıl değiştirilir
- 11. HTTParty'de bağlantı noktası nasıl ayarlanır
- 12. SQL Server bağlantı dizesinde bir bağlantı noktası numarası nasıl belirlenir?
- 13. Bir kapsayıcıya statik bağlantı noktası nasıl atanır?
- 14. Belirli bir bağlantı noktası için İz Yönlendirmesi
- 15. Geçici bağlantı noktası olan bir JMX sunucusu kullanıldığında, sunucu bağlantı noktası numarası nasıl alınır?
- 16. Bağlantı noktası konsolunda veritabanı adı nasıl bulunur?
- 17. Uyarı: Dinleme bağlantı noktası için uzak bağlantı noktası iletimi başarısız oldu 52698
- 18. Azure'da VM, genel bağlantı noktası 80'i özel bağlantı noktası 8080 ile eşleme nasıl yapılır? 8080
- 19. Bağlantı noktası 80'den URL'ye göre farklı bağlantı noktalarına yönlendiriliyor
- 20. Apache2'yi bir bağlantı noktası belirterek komut satırında nasıl başlatılır?
- 21. Adobe-Air'da seri bağlantı noktası erişimi
- 22. TCP bağlantı noktası erişimi ve C++
- 23. iperf istemci bağlantı noktası nasıl belirlenir
- 24. Python 3 için OAuth bağlantı noktası
- 25. Jquery - bağlantı noktası büyüklüğü değiştirme etkinliği?
- 26. Compact Framework Seri bağlantı noktası Açık işlev
- 27. Express uygulamalarında bağlantı noktası 3000'in önemi
- 28. Dinamik bağlantı noktası numarası mı seçiliyorsunuz?
- 29. Web sunucusu bağlantı noktası 80 on iPhone
- 30. Python bağlantı noktası iletme/çoğullama sunucusu
80 numaralı bağlantı noktasından geleneksel bir web sunucusu çalıştırma ve istekleri başka bir bağlantı noktasında çalışan bir Rails sunucusuna iletme seçeneğiniz var mı? Örneğin, [nginx] (http://wiki.nginx.org/Main) çalıştırmak ve istekleri [ince] (http://code.macournoyer.com/thin/) veya [unicorn] (http: //) olarak yönlendirmek unicorn.bogomips.org/) ayrıcalıklı olmayan bir bağlantı noktasında çalışıyor. –
Bunu yapmak istediğiniz olasılıklar son derece düşük. Normal kullanım kalıplarında Ruby, Ruby olmayan bir sunucunun arkasında ince, Mongrel, Puma, Unicorn veya başka bir şey olması gerekir. [Bu soru] konusuna bakın (http://stackoverflow.com/questions/15469598/why-thin-behind-nginx). – colinm
Evet, bu benim için sunucuyu kurmak için bir başkasının yardımı olmadan veya bir PaaS gibi Heroku; Yani istediğimi bilmediğim iyi bir şans var. Bağlantı noktası 80 üzerinde ince bir bağlantıya alternatif bir seçenek öneren ayrıntılı bir yanıt göndermeniz (eğer yorumunda Jim'in söylediği gibi nginx gibi) geçerli bir yanıt olarak kabul ediyorum. – Ajedi32