[英]Get rails server port through load balancer
最終目標:我正在嘗試獲取Ruby on Rails端口
我正在使用nginx
作為負載均衡器,在我使用thin
運行的rails服務器上的幾個不同的ruby之間進行操作。
我按照本教程了解如何將proxy_pass發送到不同的服務器,但我想知道它是否確實有效。 我能弄清楚這是否正常的唯一方法是查看瘦服務器正在運行的端口。
我無法使用request.port
因為請求實際上是通過nginx路由的,因此每個請求端口都有80
。 當我需要rails服務器真正運行的端口時。
根據這個答案 ,我嘗試過使用:
Rails::Server.new.options[:Port]
這在開發模式下工作得很好 ,但是當切換到生產模式時,它給了我500
說法
FATAL -- : ActionView::Template::Error (uninitialized constant Rails::Server)
server_name myname.com;
upstream dashboard_servers {
server <hidden>:3001 fail_timeout=0;
server <hidden>:3002 fail_timeout=0;
server <hidden>:3003 fail_timeout=0;
server <hidden>:3004 fail_timeout=0;
}
server {
listen 3000;
location / {
# set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://dashboard_servers;
}
}
我的rails服務器在端口3001-3004上,這是我需要的端口。
如何獲得Rails服務器真正運行的端口?
好吧,如果你試圖在rails控制台中運行該命令,我認為這就是為什么它會給你這個錯誤,因為沒有端口,我只是通過在我的布局中添加該行來在本地測試它並且它工作正常
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.