简体   繁体   中英

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

I have 2 server:

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM