2012-05-09 45 views
3

我很喜歡軌道生產環境。 我可以配置Nginx和獨角獸在其他(不是80)端口上響應嗎?我不需要任何域,我只需要IP和端口。 這裏是nginx的配置我的應用程序(80端口):Rails'* _url助手在生產中具有自定義(不是80)端口。 (Nginx,Unicorn)

server { 
    listen 80; 
    server_name localhost; 
    root /home/my_app_folder/web-app/public; 
    client_max_body_size 32m; 
    location/{ 
     try_files $uri @unicorn; 
    } 
    location @unicorn { 
     proxy_set_header Client-Ip $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $host; 
     proxy_pass http://unix:/home/my_app_folder/web-app/tmp/sockets/unicorn.sock; 
    } 
} 

我的應用程序工作正常使用80端口。 如果我改變80至3000例如,喜歡這裏:

server { 
    listen 3000; 
    server_name localhost; 
    root /home/my_app_folder/web-app/public; 
    client_max_body_size 32m; 
    location/{ 
     try_files $uri @unicorn; 
    } 
    location @unicorn { 
     proxy_set_header Client-Ip $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $host; 
     proxy_pass http://unix:/home/my_app_folder/web-app/tmp/sockets/unicorn.sock; 
    } 
} 

我得到的一個問題。一切正常,我可以去http:// my_ip:3000但Rails的url助手(例如root_url等)沒有端口(http:// my_ip)。

我該怎麼做才能看到與端口的URL助手?有沒有辦法在Nginx或Unicorn的配置文件中做到這一點?畢竟,當我在本地運行Webrick時,它的形式爲URL http://localhost:3000,每個* _url helper都會返回帶有端口3000的url。我需要更改一些配置文件,並將應用程序轉移到另一個端口。

謝謝。

+0

哎@ kasper375,你解決了嗎? – caarlos0

回答

5

嘗試把這樣的事情在你的應用程序控制器:

default_url_options[:port] = 3000 if Rails.env.production? 

,或者取決於你使用的是什麼版本的Rails的:

Rails.application.routes.default_url_options[:port]= 3000 if Rails.env.production? 

信用 - 迪倫的回答:

default_url_options and rails 3

相關問題