Skip to content

New app.http high level wrapper #389

@synopse

Description

@synopse

A new class may be defined to run a stand-alone HTTP(S) server easily.

Including most out-of-the-box nginx features:

  • HTTP and HTTPS support with custom certificates or Let's Encrypt service;
  • three execution models: Apache (one thread per HTTP/1.1 connection); Async (IOCP or epoll); http.sys (Windows only);
  • static content delivery, with optional gzip compression;
  • direct pascal code execution at low-level HTTP;
  • direct pascal code execution as SOA callbacks;
  • redirect to a TRestServer instance (the previous SOA item may be transparently implemented with this);
  • HTML server-side rendering using Mustache and our MVC pattern;
  • CGI/FastCGI execution Use HTTP server as FastCGI proxy #388 ;
  • reverse proxy at TCP level Use HTTP server as proxy #387 ;
  • optional IP black list for 4 seconds on status code error, and global CDIR blacklists built-in support;
  • customization of the whole workflow using pascal.

The idea is to define the class parameters as high-level methods in pure pascal code, using our efficient router class.
Later on, we may see if external settings (using YAML or somewhat compatible nginx format) may also make sense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions