簡體   English   中英

通過負載均衡器獲取rails服務器端口

[英]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)

nginx配置

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM