【问题标题】:Wrong port on redirection Rails application running on Nginx + Thin server在 Nginx + Thin 服务器上运行的重定向 Rails 应用程序的端口错误
【发布时间】:2016-04-03 18:30:02
【问题描述】:

我在 Nginx + Thin 服务器上的 3037 端口上运行 Rails 应用程序。 这是测试服务器。

当我在 Rails 应用程序中执行重定向时,例如到 domain.com:3037/users,它会将我重定向到 domain.com/users,端口 80。

我可以通过设置像这样的端口 users_url(:port => 3037) 来解决这个问题,但我不能为每个重定向链接都这样做。我相信存在更简单的方法来解决这个问题。

这是 nginx 配置文件:

upstream dev_server {
    server 127.0.0.1:9297;
}
server {
  listen 3037 default_server;
  server_name www.domain.com:3037;
  root /full_path_to_project/public;

  location / {
      proxy_pass http://dev_server;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
  }

【问题讨论】:

  • 能否请您添加您的 Nginx 配置文件?
  • @ali-sepehri-kh 刚刚添加。

标签: ruby-on-rails redirect nginx port thin


【解决方案1】:

我们可以设置 Nginx 的主机头来保留你的端口:

upstream dev_server {
    server 127.0.0.1:9297;
}
server {
    listen 3037 default_server;
    server_name www.domain.com:3037;
    root /full_path_to_project/public;

    location / {
        proxy_pass http://dev_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host:$server_port; # Keep your request port
    }

【讨论】:

    【解决方案2】:

    我通过重写 nginx 配置文件解决了这个问题,就像在这个链接中所做的那样:http://blog.mohitkanwal.com/blog/2013/04/10/deploying-rails-on-nginx-and-thin/。这是我的配置文件的样子:

    upstream dev_server {
        server 127.0.0.1:9297;
    }
    server {
      listen 3037 default_server;
      server_name domain.com:3037 www.domain.com:3037;
      root /full_path_to_project/public;
    
      location / {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect  off;
        try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
      }
    
      location @ruby {
        proxy_pass http://dev_server;
      }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多