Project

General

Profile

lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused

Added by shuchi over 5 years ago

Start receiving these errors after few hours of lighttpd start. There are initially 24 fastcgi processes running and they keep shutting down after above errors until none of the process reman.
The lighttpd process in itself keeps running.

Here is the lighttpd.conf
#
# use it as a base for lighttpd 1.0.0 and above
#
# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $

############ Options you really have to take care of ####################

## modules to load
# at least mod_access and mod_accesslog should be loaded
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules              = (
                               "mod_rewrite",
                               "mod_redirect",
                               "mod_alias",
                               "mod_access",
#                               "mod_cml",
#                               "mod_trigger_b4_dl",
                               "mod_auth",
                               "mod_status",
                               "mod_setenv",
                               "mod_expire",
                               "mod_fastcgi",
                   "mod_openssl",
#                               "mod_proxy",
#                               "mod_simple_vhost",
#                               "mod_evhost",
#                               "mod_userdir",
#                               "mod_cgi",
#                               "mod_compress",
#                               "mod_ssi",
#                               "mod_usertrack",
#                               "mod_secdownload",
#                               "mod_rrdtool",
                                "mod_accesslog" )

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root        = "/srv/www/lighttpd/" 

## where to send error-messages to
server.errorlog             = "/var/log/lighttpd/error.log" 

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )

## set the event-handler (read the performance section in the manual), default "poll" 
server.event-handler = "linux-sysepoll" 

# mimetype mapping
mimetype.assign             = (
  ".rpm"          =>      "application/x-rpm",
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  # default mime type
  ""              =>      "application/octet-stream",
 )

# Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetype.use-xattr        = "enable" 

## send a different Server: header
## be nice and keep it at lighttpd
# server.tag                 = "lighttpd" 

#### accesslog module
accesslog.filename          = "/var/log/lighttpd/access.log" 

## deny access the file-extensions
#
# ~    is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
#      of the document-root
url.access-deny             = ( "~", ".inc" )

$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable" 
}

##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
static-file.etags = "disable" 

######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)
#server.port                = 81

## bind to localhost (default: all interfaces)
#server.bind                = "127.0.0.1" 

## error-handler for status 404
#server.error-handler-404   = "/error-handler.html" 
#server.error-handler-404   = "/error-handler.php" 

## to help the rc.scripts
server.pid-file            = "/var/run/lighttpd.pid" 

###### virtual hosts
##
##  If you want name-based virtual hosting add the next three settings and load
##  mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
## or
##   virtual-server-root + http-host + virtual-server-docroot
##
#simple-vhost.server-root   = "/srv/www/vhosts/" 
#simple-vhost.default-host  = "www.example.org" 
#simple-vhost.document-root = "/htdocs/" 

##
## Format: <errorfile-prefix><status-code>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix    = "/usr/share/lighttpd/errors/status-" 
#server.errorfile-prefix    = "/srv/www/errors/status-" 

## virtual directory listings
#dir-listing.activate       = "enable" 

## enable debugging
#debug.log-request-header   = "enable" 
#debug.log-response-header  = "enable" 
#debug.log-request-handling = "enable" 
#debug.log-file-not-found   = "enable" 

### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot              = "/" 

## change uid to <uid> (default: don't care)
server.username            = "lighttpd" 

## change uid to <uid> (default: don't care)
server.groupname           = "lighttpd" 

#### compress module
#compress.cache-dir         = "/var/cache/lighttpd/compress/" 
#compress.filetype          = ("text/plain", "text/html")

#### proxy module
## read proxy.txt for more info
#proxy.server               = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "host" => "192.168.0.101",
#                                   "port" => 80
#                                 )
#                               )
#                             )

#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = (
                               ".php" =>
                               ((
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",
                                   "bin-path" => "/usr/bin/php-cgi" 
                               ))
                            )

#### CGI module
#cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
#                               ".cgi" => "/usr/bin/perl" )
#

#### SSL engine
$SERVER["socket"] == ":443" {
    ssl.engine    = "enable" 
    ssl.pemfile    = "" 
    ssl.ca-file    = "" 
        #$HTTP["host"] == "" {
        #    ssl.pemfile = "" 
        #    ssl.ca-file     = "" 
        #}
        #$HTTP["host"] == "" {
        #    ssl.pemfile = "" 
        #    ssl.ca-file     = "" 
        #}

}

#### status module
status.status-url = "/server-status" 
status.statistics-url = "/server-statistics" 
#status.config-url          = "/server-config" 

#### auth module
## read authentication.txt for more info
auth.backend               = "plain" 
auth.backend.plain.userfile = "" 
#auth.backend.plain.groupfile = "" 

#auth.backend.ldap.hostname = "localhost" 
#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com" 
#auth.backend.ldap.filter   = "(uid=$)" 

auth.require               = ( "/server-status" =>
                               (
                                 "method"  => "digest",
                                 "realm"   => "download archiv",
                                 "require" => "valid-user" 
                               ),
                               "/server-statistics" =>
                               (
                                 "method"  => "digest",
                                 "realm"   => "download archiv",
                                 "require" => "valid-user" 
                               ),
                               "/server-config" =>
                               (
                                 "method"  => "digest",
                                 "realm"   => "download archiv",
                                 "require" => "valid-user" 
                               )
                             )

#### url handling modules (rewrite, redirect, access)

#
# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
#
#evhost.path-pattern        = "/srv/www/vhosts/%3/htdocs/" 

#### expire module
#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#### ssi
#ssi.extension              = ( ".shtml" )

#### rrdtool
#rrdtool.binary             = "/usr/bin/rrdtool" 
#rrdtool.db-name            = "/var/lib/lighttpd/lighttpd.rrd" 

#### setenv
#setenv.add-request-header  = ( "TRAV_ENV" => "" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )

## for mod_trigger_b4_dl
# trigger-before-download.gdbm-filename = "/var/lib/lighttpd/trigger.db" 
# trigger-before-download.memcache-hosts = (  )
# trigger-before-download.trigger-url = "^/trigger/" 
# trigger-before-download.download-url = "^/download/" 
# trigger-before-download.deny-url = "" 
# trigger-before-download.trigger-timeout = 10

## for mod_cml
## don't forget to add index.cml to server.indexfiles
# cml.extension               = ".cml" 
# cml.memcache-hosts          = ( "" )

#### variable usage:
## variable name without "." is auto prefixed by "var." and becomes "var.bar" 
#bar = 1
#var.mystring = "foo" 

## integer add
#bar += 1
## string concat, with integer cast as string, result: "www.foo1.com" 
#server.name = "www." + mystring + var.bar + ".com" 
## array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")

#### include
#include /etc/lighttpd/lighttpd-inc.conf
## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" 
#include "lighttpd-inc.conf" 

#### include_shell
#include_shell "echo var.a=1" 
## the above is same as:
#var.a=1

server.max-fds=24576
server.max-connections=8192

# maximum number of seconds until a waiting write call times out and closes the connection, default 360
server.max-write-idle = 180

# maximum number of seconds until a waiting, non keep-alive read times out and closes the connection, default 60
#server.max-read-idle = 60

# Maximum number of seconds until an idling keep-alive connection is dropped, default 5
# server.max-keep-alive-idle = 5

# Maximum number of request within a keep-alive session before the server terminates the connection, default 16
# server.max-keep-alive-requests = 16

# Basic network interface for all platforms at the syscalls read() and write()
#server.network-backend = "linux-sendfile" 

include_shell "find lighttpd.d -type f -name \"*.conf\" -exec cat {} \;" 

Replies (5)

RE: lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused - Added by gstrauss over 5 years ago

The latest version is lighttpd 1.4.52. Please test with that version to see if your issue has already been fixed.

RE: lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused - Added by PatrickB about 4 years ago

Hi
I have similar message, as you indicated here above
In my case I get the message immediately after starting up the lighttpd server
In the error log it, looks like a continuous retry that is failing
I run with lighttpd 1.4.53
Can you indicate if you found a solution for the above issue?
Kind regards,

RE: lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused - Added by gstrauss about 4 years ago

In my case I get the message immediately after starting up the lighttpd server
In the error log it, looks like a continuous retry that is failing

That sounds like something different: the script that starts your backend is broken or the permissions on the socket directory are wrong.

Has this ever worked for you before?

RE: lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused - Added by PatrickB about 4 years ago

Hi
Hi
Hi, You are correct, this did not work before; below I have listed the message in the error.log and the permissions settings on both directory & socket file

pi@Moon:~ $ sudo tail -5 /var/log/lighttpd/error.log
2020-02-29 12:09:27: (gw_backend.c.328) child exited: 1 unix:/tmp/index-fcgi.sock-0
2020-02-29 12:09:28: (gw_backend.c.476) unlink /tmp/index-fcgi.sock-0 after connect failed: Connection refused
2020-02-29 12:09:29: (gw_backend.c.328) child exited: 1 unix:/tmp/index-fcgi.sock-0
2020-02-29 12:09:29: (gw_backend.c.476) unlink /tmp/index-fcgi.sock-0 after connect failed: Connection refused
2020-02-29 12:09:29: (gw_backend.c.328) child exited: 1 unix:/tmp/index-fcgi.sock-0

pi@Moon:~ $ ls -l / | grep "tmp"
drwxrwxrwt 13 root root 4096 feb 29 12:09 tmp

pi@Moon:~ $ ls -l /tmp/index*.*
srwxr-xr-x 1 www-data www-data 0 feb 29 12:09 /tmp/index-fcgi.sock-0
pi@Moon:~ $

I am working on a Raspberry Pi 4
I want to get a python - flask web-site running on lighttpd server and therefore I started to configure fastcgi.
I as new to fastcgi, and not so familiar with the permissions management, can any detect an error in above?
Feedback is most appreciated,
Kind Regards

RE: lighttpd 1.4.47 : (gw_backend.c.478) unlink /var/run/lighttpd/x-fastcgi.socket-0 after connect failed: Connection refused - Added by gstrauss about 4 years ago

You posted to a topic over a year old with an unrelated problem (it never worked before).
Please read the doc HowToPythonWSGI and start a new topic on the forum. Please do not post further to this one.

    (1-5/5)