ToX82 / logHappens

Bug happens. Every developer knows that. The bad thing is that if you want to see what happened you have to analyze hundreds of lines of log files, written in a format that is anything but human friendly... Know the feeling? Then logHappens is here for you!
https://tox82.github.io/logHappens/
GNU General Public License v3.0
22 stars 6 forks source link

Not working on Caddy #10

Open chrisvanmeer opened 6 months ago

chrisvanmeer commented 6 months ago

Hi, I am trying to run logHappens on Caddy and it seems there are no instructions for running it with Caddy. I assume the problem lies in that Caddy doesn't use the .htaccess file and thus cannot rewrite the requests.

I tried putting in

rewrite * /webroot/{uri}

But this results in an empty page.

chrisvanmeer commented 6 months ago

Ok the empty page was a result of me not enabling PHP on the site. Here is a code snippet from my Caddyfile:

loghappens.external.domain {
  root * /var/www/logHappens
  rewrite * /webroot{uri}
  handle /webroot/* {
    rewrite * /index.php?{uri}
  }
  iphp_fastcgi unix//run/php/php-fpm.sock
  file_server
}

But now I am confronted with a white page that - without any markup - says: "File not found."

Here are the relevant debug logs from that request:

{
  "level": "debug",
  "ts": 1711087128.9296515,
  "logger": "tls.handshake",
  "msg": "choosing certificate",
  "identifier": "loghappens.external.domain",
  "num_choices": 1
}
{
  "level": "debug",
  "ts": 1711087128.9296722,
  "logger": "tls.handshake",
  "msg": "default certificate selection results",
  "identifier": "loghappens.external.domain",
  "subjects": [
    "loghappens.external.domain"
  ],
  "managed": true,
  "issuer_key": "acme.zerossl.com-v2-DV90",
  "hash": "f64f9b8118dba1a75021161905e22cb1a404b27a83b5a1d59cb642ad5345a604"
}
{
  "level": "debug",
  "ts": 1711087128.9296832,
  "logger": "tls.handshake",
  "msg": "matched certificate in cache",
  "remote_ip": "<redacted>",
  "remote_port": "58776",
  "subjects": [
    "loghappens.external.domain"
  ],
  "managed": true,
  "expiration": 1718668800,
  "hash": "f64f9b8118dba1a75021161905e22cb1a404b27a83b5a1d59cb642ad5345a604"
}
{
  "level": "debug",
  "ts": 1711087128.9550965,
  "logger": "http.handlers.rewrite",
  "msg": "rewrote request",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58776",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/",
    "headers": {
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "method": "GET",
  "uri": "/webroot/"
}
{
  "level": "debug",
  "ts": 1711087128.9556377,
  "logger": "http.handlers.rewrite",
  "msg": "rewrote request",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58776",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/webroot/",
    "headers": {
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "method": "GET",
  "uri": "/index.php?%2Fwebroot%2F"
}
{
  "level": "debug",
  "ts": 1711087128.957092,
  "logger": "http.handlers.reverse_proxy",
  "msg": "selected upstream",
  "dial": "/run/php/php-fpm.sock",
  "total_upstreams": 1
}
{
  "level": "debug",
  "ts": 1711087128.9573426,
  "logger": "http.reverse_proxy.transport.fastcgi",
  "msg": "roundtrip",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58776",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/index.php?%2Fwebroot%2F",
    "headers": {
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "X-Forwarded-Proto": [
        "https"
      ],
      "X-Forwarded-Host": [
        "loghappens.external.domain"
      ],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "X-Forwarded-For": [
        "<redacted>"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "env": {
    "HTTP_ACCEPT_LANGUAGE": "en-GB,en;q=0.9",
    "HTTP_COOKIE": "",
    "HTTP_SEC_FETCH_MODE": "navigate",
    "AUTH_TYPE": "",
    "CONTENT_LENGTH": "",
    "HTTP_HOST": "loghappens.external.domain",
    "SCRIPT_FILENAME": "/var/www/logHappens/index.php",
    "HTTP_ACCEPT": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "DOCUMENT_ROOT": "/var/www/logHappens",
    "SSL_CIPHER": "TLS_AES_128_GCM_SHA256",
    "HTTP_X_FORWARDED_PROTO": "https",
    "HTTPS": "on",
    "REMOTE_PORT": "58776",
    "REMOTE_USER": "",
    "SERVER_NAME": "loghappens.external.domain",
    "SCRIPT_NAME": "/index.php",
    "SERVER_PORT": "443",
    "CONTENT_TYPE": "",
    "REMOTE_ADDR": "<redacted>",
    "REQUEST_URI": "/",
    "HTTP_ACCEPT_ENCODING": "gzip, deflate, br",
    "HTTP_SEC_FETCH_DEST": "document",
    "GATEWAY_INTERFACE": "CGI/1.1",
    "REQUEST_SCHEME": "https",
    "SERVER_SOFTWARE": "Caddy/v2.7.6",
    "HTTP_X_FORWARDED_FOR": "<redacted>",
    "HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15",
    "SSL_PROTOCOL": "TLSv1.3",
    "HTTP_X_FORWARDED_HOST": "loghappens.external.domain",
    "HTTP_SEC_FETCH_SITE": "none",
    "REMOTE_IDENT": "",
    "PATH_INFO": "",
    "QUERY_STRING": "%2Fwebroot%2F",
    "REMOTE_HOST": "<redacted>",
    "DOCUMENT_URI": "/index.php",
    "REQUEST_METHOD": "GET",
    "SERVER_PROTOCOL": "HTTP/2.0"
  },
  "dial": "/run/php/php-fpm.sock"
}
{
  "level": "debug",
  "ts": 1711087128.9583867,
  "logger": "http.handlers.reverse_proxy",
  "msg": "upstream roundtrip",
  "upstream": "unix//run/php/php-fpm.sock",
  "duration": 0.001233319,
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58776",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/index.php?%2Fwebroot%2F",
    "headers": {
      "X-Forwarded-Host": [
        "loghappens.external.domain"
      ],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "X-Forwarded-For": [
        "<redacted>"
      ],
      "X-Forwarded-Proto": [
        "https"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "headers": {
    "Status": [
      "404 Not Found"
    ],
    "Content-Type": [
      "text/html; charset=UTF-8"
    ]
  },
  "status": 404
}
chrisvanmeer commented 6 months ago

When changing the Caddyfile configuration from handle to handle_path, the error remains the same, but the logs show different uri's.

loghappens.external.domain {
  root * /var/www/logHappens
  rewrite * /webroot{uri}
  handle_path /webroot/* {
    rewrite * /index.php?{uri}
  }
  iphp_fastcgi unix//run/php/php-fpm.sock
  file_server
}
{
  "level": "debug",
  "ts": 1711087659.3331187,
  "logger": "tls.handshake",
  "msg": "choosing certificate",
  "identifier": "loghappens.external.domain",
  "num_choices": 1
}
{
  "level": "debug",
  "ts": 1711087659.3331687,
  "logger": "tls.handshake",
  "msg": "default certificate selection results",
  "identifier": "loghappens.external.domain",
  "subjects": [
    "loghappens.external.domain"
  ],
  "managed": true,
  "issuer_key": "acme.zerossl.com-v2-DV90",
  "hash": "f64f9b8118dba1a75021161905e22cb1a404b27a83b5a1d59cb642ad5345a604"
}
{
  "level": "debug",
  "ts": 1711087659.3332012,
  "logger": "tls.handshake",
  "msg": "matched certificate in cache",
  "remote_ip": "<redacted>",
  "remote_port": "58948",
  "subjects": [
    "loghappens.external.domain"
  ],
  "managed": true,
  "expiration": 1718668800,
  "hash": "f64f9b8118dba1a75021161905e22cb1a404b27a83b5a1d59cb642ad5345a604"
}
{
  "level": "debug",
  "ts": 1711087659.3695347,
  "logger": "http.handlers.rewrite",
  "msg": "rewrote request",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58948",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/",
    "headers": {
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "method": "GET",
  "uri": "/webroot/"
}
{
  "level": "debug",
  "ts": 1711087659.3696456,
  "logger": "http.handlers.rewrite",
  "msg": "rewrote request",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58948",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/webroot/",
    "headers": {
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "method": "GET",
  "uri": "/"
}
{
  "level": "debug",
  "ts": 1711087659.3696673,
  "logger": "http.handlers.rewrite",
  "msg": "rewrote request",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58948",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/",
    "headers": {
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "method": "GET",
  "uri": "/index.php?%2F"
}
{
  "level": "debug",
  "ts": 1711087659.3697844,
  "logger": "http.handlers.reverse_proxy",
  "msg": "selected upstream",
  "dial": "/run/php/php-fpm.sock",
  "total_upstreams": 1
}
{
  "level": "debug",
  "ts": 1711087659.3699443,
  "logger": "http.reverse_proxy.transport.fastcgi",
  "msg": "roundtrip",
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58948",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/index.php?%2F",
    "headers": {
      "X-Forwarded-For": [
        "<redacted>"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "X-Forwarded-Host": [
        "loghappens.external.domain"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "X-Forwarded-Proto": [
        "https"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "env": {
    "REMOTE_IDENT": "",
    "CONTENT_TYPE": "",
    "SERVER_PROTOCOL": "HTTP/2.0",
    "DOCUMENT_URI": "/index.php",
    "SERVER_PORT": "443",
    "HTTPS": "on",
    "AUTH_TYPE": "",
    "GATEWAY_INTERFACE": "CGI/1.1",
    "REQUEST_URI": "/",
    "HTTP_ACCEPT": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "REMOTE_ADDR": "<redacted>",
    "REQUEST_SCHEME": "https",
    "HTTP_HOST": "loghappens.external.domain",
    "HTTP_X_FORWARDED_FOR": "<redacted>",
    "HTTP_COOKIE": "",
    "HTTP_SEC_FETCH_MODE": "navigate",
    "REMOTE_USER": "",
    "DOCUMENT_ROOT": "/var/www/logHappens",
    "HTTP_ACCEPT_LANGUAGE": "en-GB,en;q=0.9",
    "HTTP_X_FORWARDED_HOST": "loghappens.external.domain",
    "QUERY_STRING": "%2F",
    "REQUEST_METHOD": "GET",
    "SERVER_NAME": "loghappens.external.domain",
    "HTTP_SEC_FETCH_DEST": "document",
    "REMOTE_PORT": "58948",
    "SCRIPT_NAME": "/index.php",
    "HTTP_SEC_FETCH_SITE": "none",
    "HTTP_ACCEPT_ENCODING": "gzip, deflate, br",
    "CONTENT_LENGTH": "",
    "REMOTE_HOST": "<redacted>",
    "SERVER_SOFTWARE": "Caddy/v2.7.6",
    "SSL_CIPHER": "TLS_AES_128_GCM_SHA256",
    "SSL_PROTOCOL": "TLSv1.3",
    "HTTP_X_FORWARDED_PROTO": "https",
    "HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15",
    "PATH_INFO": "",
    "SCRIPT_FILENAME": "/var/www/logHappens/index.php"
  },
  "dial": "/run/php/php-fpm.sock"
}
{
  "level": "debug",
  "ts": 1711087659.370586,
  "logger": "http.handlers.reverse_proxy",
  "msg": "upstream roundtrip",
  "upstream": "unix//run/php/php-fpm.sock",
  "duration": 0.00075014,
  "request": {
    "remote_ip": "<redacted>",
    "remote_port": "58948",
    "client_ip": "<redacted>",
    "proto": "HTTP/2.0",
    "method": "GET",
    "host": "loghappens.external.domain",
    "uri": "/index.php?%2F",
    "headers": {
      "Accept-Language": [
        "en-GB,en;q=0.9"
      ],
      "Sec-Fetch-Dest": [
        "document"
      ],
      "Sec-Fetch-Site": [
        "none"
      ],
      "X-Forwarded-For": [
        "<redacted>"
      ],
      "Cookie": [],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Sec-Fetch-Mode": [
        "navigate"
      ],
      "User-Agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15"
      ],
      "X-Forwarded-Host": [
        "loghappens.external.domain"
      ],
      "Accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "X-Forwarded-Proto": [
        "https"
      ]
    },
    "tls": {
      "resumed": false,
      "version": 772,
      "cipher_suite": 4865,
      "proto": "h2",
      "server_name": "loghappens.external.domain"
    }
  },
  "headers": {
    "Status": [
      "404 Not Found"
    ],
    "Content-Type": [
      "text/html; charset=UTF-8"
    ]
  },
  "status": 404
}