我是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。我需要更改一些配置文件,并将应用程序转移到另一个港口。
谢谢。