Nginx / Apache для проверки статуса другого веб-сервера (онлайн / офлайн) - PullRequest
1 голос
/ 24 октября 2011

ОК, поэтому я использую nginx + php fastcgi, мне нужно показать посетителям пользовательскую страницу с сообщением о том, что у нас возникли технические проблемы, как я могу это сделать?

Должен ли я установить nginx на 80 в качестве прокси на другой сервер nginx, прослушивающий 8080, и проверить его состояние с помощью модуля HttpHealthcheck, или есть лучшее решение?

1 Ответ

1 голос
/ 25 октября 2011

Вам понадобится стороннее дополнение для проверки вашего внутреннего сервера, проверьте это: http://wiki.nginx.org/HttpHealthcheckModule

Когда бэкэнд не работает, nginx отвечает на ошибку 502, вы можете установить для нее пользовательскую страницу.

error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

Новый ответ:)

Я бы использовал haproxy (http://haproxy.1wt.eu/) для этого.

haproxy как ваш интерфейс, прослушивающий порт 80, и nginx + php-fpm в качестве бэкэнда

установка HAProxy: (проверьте ваши настройки и отредактируйте скрипты)

make TARGET=linux26 CPU=x86_64
cp haproxy /usr/sbin/haproxy
wget http://layer1.rack911.com/haproxy/haproxy-standard.cfg -O /etc/haproxy.cfg
wget http://layer1.rack911.com/haproxy/haproxy.init -O /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy

haproxy.cfg (я не включал глобальные / стандартные сессии)

frontend webserver-80
        bind <ip>:80
        option forwardfor
        option http-server-close
        default_backend backend-nginx

backend backend-nginx
        #balance roundrobin
        balance source
        option httpchk GET /fpm_ping
        server srv1 <ip>:<port> weight 1 check
        errorfile    503        /etc/errors/503_noserver.txt

Проверьте утилиту hatop (http://code.google.com/p/hatop/) или включите сеанс статистики в haproxy.cfg, чтобы можно было проверить состояние haproxy ...

listen stats :<port>
        balance
        mode http
        stats enable
        stats auth admin:admin
        stats uri /
#       option   httplog

Настройте php-fpm для ответа на запросы ping (или измените его на другую проверку)

On /etc/nginx/nginx.conf

location /fpm_ping {
    access_log     off;
    allow          <ipaddr/cidr>;
    allow          127.0.0.1;
    deny           all;
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
    include        fastcgi_params;
}

На /etc/php-fpm.d/www.conf include / uncomment

ping.path = /fpm_ping
ping.response = pong
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...