gpt4 book ai didi

ruby-on-rails - Rails 的 *_url 助手在生产中使用自定义(不是 80)端口。 (Nginx, unicorn )

转载 作者:行者123 更新时间:2023-12-03 21:39:37 24 4
gpt4 key购买 nike

我是 Rails 生产环境的菜鸟。
我可以将 nginx 和 unicorn 配置为在其他(不是 80)端口上响应吗?我不需要任何域,我只需要 ip 和端口。
这是我的应用程序的 nginx 配置(80 端口):

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 助手都返回端口为 3000 的 url。我需要更改一些配置文件,并将应用程序传输到另一个端口。

谢谢。

最佳答案

尝试在您的应用程序 Controller 中放置类似的内容:

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

关于ruby-on-rails - Rails 的 *_url 助手在生产中使用自定义(不是 80)端口。 (Nginx, unicorn ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com