haproxy с nginx для хостинга веб-сервера

haproxy с nginx для хостинга веб-сервера

У меня есть сервер nginx, который обслуживает разные веб-серверы на портах 80 и 443, которые работают нормально, если я обращаюсь к ним напрямую.

abc.com, zyx.com

 client ---->abc.com,zyx.com (on nginx)

Теперь я пытаюсь сделать то же самое через haproxy, но не могу.

 client -----> abc.com, zyx.com (on haproxy) ----->nginx (abc.com, zyx.com)

Haproxy и nginx находятся на одном и том же vpc, поэтому я хочу дополнительно модифицировать его для вызова внутреннего ip. Можно ли добиться того же самого?

Ниже приведена конфигурация для haproxy.

   global
    daemon
    maxconn 100000
    gid 99
    uid 99
    log /dev/log    local0
    log /dev/log    local1 notice
    nbproc 4
    pidfile /etc/haproxy/pid


   defaults
    log global
    mode http
    maxconn 100000
    option dontlognull
    option forwardfor except 127.0.0.1
    option http-server-close
    option httpclose
    option httplog
    option http_proxy
    option redispatch
    option logasap
    option log-separate-errors
    retries 3

    timeout http-request 86400
    timeout queue 86400
    timeout connect 86400
    timeout client 86400
    timeout server 86400
    timeout http-keep-alive 3000
    timeout check 2000

    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http


   frontend https-in
    bind *:443 ssl crt /etc/haproxy/ssl/*.pem
    reqadd X-Forwarded-Proto:\ https
    acl abc hdr(host) -i abc.com
    use_backend wow if abc

   frontend http
    bind *:80
    compression algo gzip
    compression type application/json text/html text/plain text/css
    reqadd X-Forwarded-Proto:\ http
    stats enable
    stats hide-version
    stats uri /stats
    stats realm Haproxy\ Statistics
    stats auth haproxy:haproxy
    stats refresh 10s 

    acl zyx hdr(host) -i zyx.com
    use_backend amazing if zyx

   wow
    server nginx someip:443 check
   amazing
    server nginx someip:80 check

Ниже приведена конфигурация сервера nginx.

abc.com

         server {
      listen 443;
      server_name abc.com;
      ssl on;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_certificate /etc/nginx/ssl/*.crt;
      ssl_certificate_key /etc/nginx/ssl/*.key;

      location  / {
       root /location_of_webserver;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_connect_timeout      360;
       proxy_send_timeout         360;
       proxy_read_timeout         360;
      }
    }

zyx.com

    server {
            listen 80;
            server_name zyx.com;

            location  / {
              alias /location_of_webserver/;
              autoindex on;
              expires 24h;
             }
    }

решение1

Попробуйте изменить следующее:

wow
server nginx someip:443 check
amazing
server nginx someip:80 check

К:

backend wow
server nginx ipaddress:443 check
backend amazing
server nginx ipaddress:80 check

Если вы сможете дополнить свои вопросы ошибками в файле журнала, будет проще определить причину.

Связанный контент