OCF_HEARTBEAT_NGINX(7)

NAME
ocf_heartbeat_nginx - Manages an Nginx web/proxy server instance

SYNOPSIS

nginx [start | stop | status | monitor | meta-data | validate-all]

DESCRIPTION

This is the resource agent for the Nginx web/proxy server. This resource agent does not monitor POP or IMAP servers, as we don't know how to determine meaningful status for them.

The start operation ends with a loop in which monitor is repeatedly called to make sure that the server started and that it is operational. Hence, if the monitor operation does not succeed within the start operation timeout, the nginx resource will end with an error status.

The default monitor operation will verify that nginx is running.

The level 10 monitor operation by default will try and fetch the /nginx_status page - which is commented out in sample nginx configurations. Make sure that the /nginx_status page works and that the access is restricted to localhost (address 127.0.0.1) plus whatever places _outside the cluster_ you want to monitor the server from. See the status10url and status10regex attributes for more details.

The level 20 monitor operation will perform a more complex set of tests from a configuration file.

The level 30 monitor operation will run an external command to perform an arbitrary monitoring operation.

SUPPORTED PARAMETERS

configfile
    The full pathname of the Nginx configuration file. This file is parsed to provide defaults for various other resource agent parameters.

    (unique, optional, string, no default)

httpd
    The full pathname of the httpd binary (optional).

    (optional, string, default "/usr/sbin/httpd")

port
    A port number that we can probe for status information using the statusurl. This will default to the port number found in the configuration file, or 80, if none can be found in the configuration file.

    (optional, integer, no default)

status10url
    The URL to monitor (the nginx server status page by default) when given a level 10 monitor operation. If left unspecified, it will be inferred from the nginx configuration file, or defaulted to /nginx_status.

    If you set this, make sure that it succeeds *only* from the localhost (127.0.0.1) and no other cluster nodes. Otherwise, the cluster software may complain about it being active on multiple nodes.

    (optional, string, no default)

status10regex
    Regular expression to match in the output of status10url. Case insensitive.

    (optional, string, default "Reading: [0-9]+ Writing: [0-9]+ Waiting: [0-9]+")

testclient
    Client to use to query to Nginx for level 10 and level 20 tests. If not specified, the RA will try to find one on the system. Currently, wget and curl are supported, with curl being preferred. For example, you can set this parameter to "wget" if you prefer that to curl.

    (optional, string, no default)

test20url
    URL to test. If it does not start with "http", then it's considered to be relative to the document root address.

    (optional, string, no default)

test20regex
    Regular expression to match in the output of test20url. Case insensitive.

    (optional, string, no default)

test20conffile
    A file which contains a more complex test configuration. Could be useful if you have to check more than one web application or in case sensitive info should be passed as arguments (passwords). Furthermore, using a config file is the only way to specify certain parameters.

    Please see README.webapps for examples and file description.

    (optional, string, no default)

test20name
    Name of the test within the test configuration file.

    (optional, string, no default)

external_monitor30_cmd
    Command string to run which implements level 30 monitoring.

    (optional, string, no default)

options
    Extra options to apply when starting nginx.

    (optional, string, no default)

SUPPORTED ACTIONS

This resource agent supports the following actions (operations):

start
    Starts the resource. Suggested minimum timeout: 40s.

stop
    Stops the resource. Suggested minimum timeout: 60s.

reload
    Suggested minimum timeout: 40s.

status
    Performs a status check. Suggested minimum timeout: 30s.

monitor
    Performs a detailed status check. Suggested minimum timeout: 30s. Suggested interval: 10s.

monitor
    Performs a detailed status check. Suggested minimum timeout: 30s. Suggested interval: 30s.

monitor
    Performs a detailed status check. Suggested minimum timeout: 45s. Suggested interval: 60s.

monitor
    Performs a detailed status check. Suggested minimum timeout: 60s. Suggested interval: 61s.

meta-data
    Retrieves resource agent metadata (internal use only). Suggested minimum timeout: 5s.

validate-all
    Performs a validation of the resource configuration. Suggested minimum timeout: 5s.

EXAMPLE CRM SHELL

The following is an example configuration for a nginx resource using the crm(8) shell:

    primitive p_nginx ocf:heartbeat:nginx \
      op monitor timeout="30s" depth="0" interval="10s" \
      op monitor timeout="30s" depth="10" interval="30s" \
      op monitor timeout="45s" depth="20" interval="60s" \
      op monitor timeout="60s" depth="30" interval="61s"

EXAMPLE PCS

The following is an example configuration for a nginx resource using pcs(8)

    pcs resource create p_nginx ocf:heartbeat:nginx \
      op monitor timeout="30s" OCF_CHECK_LEVEL="0" interval="10s" \
      op monitor timeout="30s" OCF_CHECK_LEVEL="10" interval="30s" \
      op monitor timeout="45s" OCF_CHECK_LEVEL="20" interval="60s" \
      op monitor timeout="60s" OCF_CHECK_LEVEL="30" interval="61s"

SEE ALSO

http://clusterlabs.org/

AUTHOR

ClusterLabs contributors (see the resource agent source for information about individual authors)