@slava.ganzin/http2-server

1.7.2 • Public • Published

Stop bundling your css/js and enjoy HTTP2 and PUSH_PROMISE

Build Status

http2-server

Simple HTTP2/SPDY server similiar to http-server using express & node-spdy

Installation

  sudo npm install -g static-http2-server

Naive PUSH_PROMISE

By default http2-server match static resources with their Referer header (for example '/') and will server push them coupled with response, when refered resource (e.g. index.html) would be requested next time

Usage


http2-server [path] [options]

  Options:

    -h, --help                        output usage information
    -V, --version                     output the version number
    -a, --address [127.0.0.1]         address to use
    -p, --ssl-port [4443]             ssl port to use
    --http-port [8080]                http port which redirects to ssl port
    -c, --cache                       enable cache
    -m, --maxAge [0]                  cache maxAge in ms acceptable string
        https://github.com/zeit/ms
    
    -P, --no-push                     disable naive PUSH_PROMISE
    -o, --open [xdg-open]             open default app after starting the server
        -o firefox
        -o "google-chrome --incognito"
        -o "curl --insecure"
    
    -l, --log [dev]                   log format (dev|combined|common|short|tiny)
        https://github.com/expressjs/morgan#predefined-formats
    
    -s, --silent                      suppress log messages from output
    --cors                            enable CORS
    -S, --no-ssl                      disable https
          Works as plain http server without http2, spdy, push_promise
    
    -e, --cert [certs/cert.pem]       path to ssl cert file
    -k, --key  [certs/key.pem]        path to ssl key file
    --generate-cert                   save autogenerated certificates and exit
    --trust-cert                      add certificate to trusted (currently linux only)
    -g, --compression                 enable deflate/gzip/brotli/zopfli
    -i, --index [index.html]          Specify index file name
    --proxy [https://127.0.0.1:4443]  Proxies all requests which can't be resolved locally to the given url.
    e.g.: -P http://someurl.com
    -I, --no-autoindex                Disable auto index


Usage as a dependency in your project

  npm install static-http2-server --save

package.json:

...
  "scripts": {
    "start": "node_modules/.bin/http2-server -o",
  },
...

SSL certificates

For development you can use autogenerated selfsigned certificates. For production you should use Let's encrypt or any other certificate authority

Generate selfsigned certificates and trust them

  http2-server --generate-cert --trust-cert

Add previously generated certificate to trusted

  http2-server --trust-cert --cert path/to/your.cert

Additionally you can try

letsencrypt-cli

Dependencies (12)

Dev Dependencies (6)

Package Sidebar

Install

npm i @slava.ganzin/http2-server

Weekly Downloads

1

Version

1.7.2

License

ISC

Unpacked Size

24.1 kB

Total Files

28

Last publish

Collaborators

  • slava.ganzin