diff --git a/README.md b/README.md index e8d18fa..7954c66 100644 --- a/README.md +++ b/README.md @@ -3,57 +3,108 @@ Online nginx configuration generator. ## Features -* HTTPS (with [Let's Encrypt](https://letsencrypt.org) or custom certificate) -* HTTP2 -* [SSL profiles](https://mozilla.github.io/server-side-tls/ssl-config-generator/) -* [HSTS](https://hstspreload.org) -* force HTTPS -* OCSP DNS resolvers - * Cloudflare Resolver - * Google Public DNS - * OpenDNS +### Site +* Domain +* Path +* Document root +* www subdomain * CDN -* www / non-www -* redirect subdomains -* IPv4, IPv6 -* PHP (TCP, 5.x FPM, 7.0 FPM, 7.1 FPM, 7.2 FPM, 7.3 FPM) -* Reverse proxy (e.g. Node.js) +* Redirect www to non-www or non-www to www +* Listen IPv4, IPv6 + +### HTTPS +* HTTPS +* HTTP2 +* Force HTTPS redirect +* [HSTS](https://hstspreload.org) +* [SSL profiles](https://mozilla.github.io/server-side-tls/ssl-config-generator/) +* Certification type + * [Let's Encrypt](https://letsencrypt.org) + * Custom certificate +* OCSP DNS resolvers + * [Cloudflare Resolver](https://www.cloudflare.com/dns/) + * [Google Public DNS](https://developers.google.com/speed/public-dns/) + * [OpenDNS](https://www.opendns.com) + +### Security +* Referrer-Policy + * `no-referrer` + * `no-referrer-when-downgrade` + * `origin` + * `origin-when-cross-origin` + * `same-origin` + * `strict-origin` + * `strict-origin-when-cross-origin` + * `unsafe-url` +* Content-Security-Policy +* X-Frame-Options +* X-XSS-Protection +* X-Content-Type-Options +* `server_tokens` +* `limit_req` (throttle WordPress login) + +### PHP +* PHP +* PHP connection + * TCP + * HHVM socket + * 5.x socket + * 7.x socket * WordPress security essentials * Drupal security essentials -* pass requests to index.php - * *[Laravel](https://laravel.com/docs/master/deployment#nginx)* - * *[Lumen](https://lumen.laravel.com/docs/5.1/installation#configuration)* - * *[Symfony](https://symfony.com/doc/current/setup/web_server_configuration.html#nginx)* - * *[Zend](https://www.nginx.com/resources/wiki/start/topics/recipes/zend/)* - * *[CodeIgniter](https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/)* - * *[Yii](http://www.yiiframework.com/doc/guide/1.1/en/quickstart.apache-nginx-config#nginx)* - * *[CakePHP](https://book.cakephp.org/3.0/en/installation.html#nginx)* - * *[Slim](https://www.slimframework.com/docs/start/web-servers.html)* - * … -* pass requests to index.html - * *[Angular](https://angular.io/guide/deployment#production-servers)* - * *[React](https://github.com/react-boilerplate/react-boilerplate/blob/v3.5.0/app/.nginx.conf#L81)* - * *[Vue.js](https://stackoverflow.com/questions/47655869/how-to-use-vue-js-with-nginx)* - * *[Ember.js](https://discuss.emberjs.com/t/how-to-serve-all-routes-on-a-production-server-exactly/6372)* - * … -* unified (`nginx.conf`) / modularized file structure (ideal for multi-domain environment) -* security headers - * `X-Frame-Options` - * `X-XSS-Protection` - * `X-Content-Type-Options` - * `Referrer-Policy` - * `Content-Security-Policy` + +### Routing +* `index` +* Fallback routing + * index.php + * *[Laravel](https://laravel.com/docs/master/deployment#nginx)* + * *[Lumen](https://lumen.laravel.com/docs/5.1/installation#configuration)* + * *[Symfony](https://symfony.com/doc/current/setup/web_server_configuration.html#nginx)* + * *[Zend](https://www.nginx.com/resources/wiki/start/topics/recipes/zend/)* + * *[CodeIgniter](https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/)* + * *[Yii](http://www.yiiframework.com/doc/guide/1.1/en/quickstart.apache-nginx-config#nginx)* + * *[CakePHP](https://book.cakephp.org/3.0/en/installation.html#nginx)* + * *[Slim](https://www.slimframework.com/docs/start/web-servers.html)* + * index.html + * *[Angular](https://angular.io/guide/deployment#production-servers)* + * *[React](https://github.com/react-boilerplate/react-boilerplate/blob/v3.5.0/app/.nginx.conf#L81)* + * *[Vue.js](https://stackoverflow.com/questions/47655869/how-to-use-vue-js-with-nginx)* + * *[Ember.js](https://discuss.emberjs.com/t/how-to-serve-all-routes-on-a-production-server-exactly/6372)* +* Fallback routing PHP (SPA + API support) + +### Cache +* Assets (`css(\.map)?|js(\.map)?`) +* Media + * Images (`jpe?g|png|gif|ico|cur|heic|webp|tiff?`) + * Audio (`mp3|m4a|aac|ogg|midi?|wav`) + * Video (`mp4|mov|webm|mpe?g|avi|ogv|flv|wmv`) +* SVG (`svgz?`) +* Fonts (`ttf|ttc|otf|eot|woff2?`) + +### Reverse proxy +* Reverse proxy +* Path +* `proxy_pass` +* Proxy headers + +### Logging +* `access_log` +* `error_log` +* `access_log` by domain +* `error_log` by domain +* `log_not_found` + +### nginx * `worker_processes` * `user` * `pid` -* `access_log` -* `error_log` * `client_max_body_size` -* `gzip` -* `server_tokens` -* `log_not_found` -* rate limiting (`limit_req`) -* expiration by file types (`expires`) + +### Tools +* Download generated config +* Modularized / unified structure (multiple or singe file(s)) +* Share settings +* Reset ## Built With * [Bootstrap](http://getbootstrap.com) - Grid, form controls diff --git a/public/assets/img/github.png b/public/assets/img/github.png new file mode 100644 index 0000000..ccd6eac Binary files /dev/null and b/public/assets/img/github.png differ