HAProxy и NGINX проблемы с частным IP - PullRequest
0 голосов
/ 23 января 2011

У меня настроен HAProxy, и у меня нет проблем с указанием его на общедоступный IP-адрес моего сервера приложений, но я не могу заставить его указать на частный IP-адрес. Я получаю сообщение «503 Сервис недоступен. Сервер не может обработать этот запрос». ошибка

Это мои настройки:

haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        user haproxy
        group haproxy

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen webfarm 173.255.222.100:80
       mode http
       stats enable
       stats auth deploy:d3pl0y
       balance roundrobin
       cookie JSESSIONID prefix
       option httpclose
       option forwardfor
       server App1 192.168.133.136:80 cookie App1 check

nginx.conf (для сервера приложений)

#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    passenger_root /opt/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.2;
    passenger_ruby /opt/ruby/bin/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

server {
     listen 192.168.133.136:80;
     port_in_redirect off;
     server_name localhost;
     root /var/www/current/public;
     passenger_enabled on;
     rack_env production;
     if (-f $document_root/system/maintenance.html){
             rewrite  ^(.*)$  /system/maintenance.html break;
     }


     if ($host ~* www\.(.*)) {
             set $host_without_www $1;
             rewrite ^(.*)$ http://$host_without_www$1 permanent;
     }
        }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}

Ответы [ 2 ]

1 голос
/ 29 января 2011

503 означает, что сервер не прошел проверки, которые просто являются TCP в вашей конфигурации. Я подозреваю, что ваш трафик фильтруется между haproxy LB и сервером или что сервер не может ответить на LB.

0 голосов
/ 01 октября 2015

Где находится определение бэкэнда в вашем haproxy.conf?Вы должны определить бэкэнд по умолчанию и поставить сервер App1 192.168.133.136:80 cookie App1, чтобы проверить и включить статистику Haproxy, чтобы проверить, что происходит.Вы также проверили брандмауэр и убедились, что 192.168.133.136 отвечает на сервер, на котором установлен haproxy?

Пожалуйста, проверьте следующую статью о балансировке нагрузки с помощью haproxy .

...