在nginx.conf.erb上使用Heroku服务器URL进行负载平衡

时间:2017-07-05 12:51:34

标签: node.js nginx heroku load-balancing

我有2台服务器:

此处我在服务器1配置nginx.conf.erbhttps://gist.github.com/ntvinh11586/5b6fde3e804482aa400f3f7faca3d65f

当我尝试拨打https://server1.herokuapp.com/时,我没有从https://server2.herokuapp.com/返回数据,而是到达400 - Bad request。我不知道我的nginx.conf.erb错误或我需要在服务器2中实现nginx。

尝试研究一些资源,但我发现这些教程几乎都是在localhost中配置而不是像heroku这样的特定主机。

那么我应该怎样做才能使我的工作成功?

1 个答案:

答案 0 :(得分:0)

您需要按照以下方式配置您的应用 -

#upstream nodebeats {
#       server server2.herokuapp.com;
#   }

 server {
    listen       <%= ENV['PORT'] %>;
    server_name  herokuapp.com;
    root    "/app/";
    large_client_header_buffers 4 32k;

    location / {
        proxy_redirect off;
        proxy_set_header   X-Real-IP            $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host                   $http_host;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
         proxy_pass http://localhost:<node-app-port>;
    }

我的两分钱。

评论上游。使用单个服务器server1.herokuapp.com,让它使用上述实现,然后您可以完成添加server2.hreokuapp.com以实现负载平衡。