Provided by: golf_601.4.41-1_amd64 bug

NAME

       service - Golf documentation (running-application)

DESCRIPTION

       You  can run a Golf application as a service by using mgrg program manager. Your application can then use
       commonly used web servers or load balancers (such as Apache, Nginx or HAProxy) so it becomes available on
       the web.

       You can access your server application by means of:

           • A web server (which is probably the most common way). You need to setup a reverse proxy, i.e. a web
           server that will forward requests and send replies back to clients; see below.

           • The command line, in which case you can use gg (see -r option).

           • Client-API, which allows any application in any programming language to access your server, as long
           as it has C linkage (by far most do). This method  allows  for  MT  (multithreaded)  access  to  your
           application,  where  many  client  requests can be made in parallel.  Golf server runs as a number of
           (zero or more) background processes in parallel, processing requests simultaneously.

           SETTING UP REVERSE PROXY (WEB SERVER)

           To access your application via a reverse proxy (i.e. web server), generally you need to add  a  proxy
           directive and restart the web server.

           If  you  use  Apache,  you need to connect it to your application, see connect-apache-tcp-socket (for
           using TCP sockets) and connect-apache-unix-socket (for using Unix sockets). If  you  use  Nginx,  you
           need  to  connect  it  to  your application, see connect-nginx-tcp-socket (for using TCP sockets) and
           connect-nginx-unix-socket (for using Unix  sockets).  For  HAProxy,  see  connect-haproxy-tcp-socket.
           Virtually  all  web  servers/proxies  support FastCGI protocol used by Golf; please see your server's
           documentation.

           STARTING GOLF SERVER PROCESSES

           Use mgrg, for example:

               mgrg <app name>

           which in general will (based on the request load) start zero or more background resident  process(es)
           (daemons) that process requests in parallel, or for instance:

               mgrg -w 20 <app name>

           which will start 20 processes.

           CONNECTION TIMEOUT

           In  a heavy-load environment, a client's connection may be rejected by the server. This may happen if
           the client runs very slowly due to swapping perhaps. Once a client establishes a connection,  it  has
           up  to  5  seconds  by  default  to  send  data; if it doesn't, the server will close the connection.
           Typically, clients send data right away, but due to a heavy load, this time may be longer. To set the
           connection timeout in milliseconds, set  the  following  variable  before  starting  the  application
           server, for instance:

               export "LIBFCGI_IS_AF_UNIX_KEEPER_POLL_TIMEOUT"="8000"
               mgrg -w 1 <app name>

           In this case, the timeout is set to 8 seconds.

SEE ALSO

        Running application

       application-setup CGI command-line service See all documentation

$DATE                                               $VERSION                                           GOLF(2gg)