Use Heroku server url at nginx.conf.erb for load balancing

笑着哭i 提交于 2019-12-11 16:56:35

问题


I have 2 server:

  • Server 1 is for loading balance with Nginx - https://server1.herokuapp.com/
  • Server 2 is for acting RESTful APIs. - https://server2.herokuapp.com/

Here my configuration of nginx.conf.erb at Server 1: https://gist.github.com/ntvinh11586/5b6fde3e804482aa400f3f7faca3d65f

When I try call https://server1.herokuapp.com/, instead of return data from https://server2.herokuapp.com/, I reach a 400 - Bad request. I don't know somewhere in my nginx.conf.erb wrong or I need implement nginx in server 2.

Try to research some resources but I found almost these tutorials configuring in localhost instead of specific hosts like heroku.

So what should I do to make my work successfully?


回答1:


You need to configure your app as follows -

#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>;
    }

My two cents.

Comment out the upstream. Work with a single server server1.herokuapp.com, get it working with the above implementation, and then you can accomplish on adding the server2.hreokuapp.com to load balance.



来源:https://stackoverflow.com/questions/44926817/use-heroku-server-url-at-nginx-conf-erb-for-load-balancing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!