<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Quicksand:400,700"> <link rel="stylesheet" href="https://cdn.nginxconfig.io/assets/css/bootstrap.min.css?v=4.0.0-beta.3"> <link rel="stylesheet" href="https://cdn.nginxconfig.io/assets/css/highlight-github.min.css?v=9.12.0"> <link rel="stylesheet" href="https://cdn.nginxconfig.io/assets/css/app.css"> <link rel="icon" type="image/png" href="https://cdn.nginxconfig.io/assets/img/favicon.png"> <title>nginxconfig.io</title> <meta name="description" content="nginx config generator"> <meta name="keywords" content="nginx, config, configurator, /etc/nginx/nginx.conf, nginx performance, nginx tuning, nginx php, nginx, php fpm, wordpress, cdn, access_log, error_log"> </head> <body ng-app="NginxConfigIoApp"> <header> <div class="container-fluid"> <img src="https://cdn.nginxconfig.io/assets/img/nginx.svg" alt="nginx" class="nginx"> <img src="https://cdn.nginxconfig.io/assets/img/config.svg" alt="config" class="config"> config.io </div> </header> <main ng-controller="NginxConfigIoController"> <div class="container"> <div class="row"> <div class="col-sm-10 col-lg-8 col-xl-6 offset-sm-1 offset-lg-2 offset-xl-3"> <div class="input-group mb-2 url"> <div class="input-group-prepend"> <div class="input-group-text" ngclipboard data-clipboard-target="#url"><img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"></div> </div> <input type="text" id="url" class="form-control form-control-sm" ng-value="location.absUrl()" readonly> <div class="input-group-append"> <div class="input-group-text" ng-click="reset()"><img src="https://cdn.nginxconfig.io/assets/img/refresh.svg" alt="Reset"></div> </div> </div> </div> </div> </div> <div class="container-fluid"> <div class="row"> <div class="col-md-3 col-lg-2 options"> <div class="card"> <div class="card-body"> <div class="form-group"> <label class="form-label"><span class="info">Domain</span></label> <input type="text" class="form-control form-control-sm" ng-model="data.domain"> </div> <div class="form-group"> <label class="form-label"><span class="info">Path</span></label> <input type="text" class="form-control form-control-sm" ng-model="data.path"> </div> <div class="form-group"> <label class="form-label"><span class="info">Document root</span></label> <input type="text" class="form-control form-control-sm" ng-model="data.document_root"> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="https" ng-model="data.https"> <label class="form-check-label" for="https"> <span class="info">HTTPS</span> </label> </div> <div class="form-check" ng-if="data.https"> <input class="form-check-input" type="checkbox" id="http2" ng-model="data.http2"> <label class="form-check-label" for="http2"> <span class="info">HTTP2</span> </label> </div> <div class="form-group" ng-if="data.https"> <label class="form-label">E-mail</label> <input type="text" class="form-control form-control-sm" ng-model="data.email"> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="cdn" ng-model="data.cdn"> <label class="form-check-label" for="cdn"> <span class="info">CDN</span> </label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="non_www" ng-model="data.non_www"> <label class="form-check-label" for="non_www"> <span class="info">non-www</span> </label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="index_html" ng-model="data.index_html"> <label class="form-check-label" for="index_html"> <span class="info">index.html</span> </label> </div> </div> </div> <div class="card"> <div class="card-body"> <div class="form-group"> <label>PHP</label> <select class="form-control" ng-model="data.php"> <option value="off">off</option> <option value="tcp">TCP</option> <option value="5.x">5.x socket</option> <option value="7.0">7.0 socket</option> <option value="7.1">7.1 socket</option> <option value="7.2">7.2 socket</option> </select> </div> <div class="form-check" ng-if="data.php !== 'off'"> <input class="form-check-input" type="checkbox" id="index_php" ng-model="data.index_php"> <label class="form-check-label" for="index_php"> <span class="info">index.php</span> </label> </div> <div class="form-check" ng-if="data.php !== 'off'"> <input class="form-check-input" type="checkbox" id="wordpress" ng-model="data.wordpress"> <label class="form-check-label" for="wordpress"> <span class="info">WordPress</span> </label> </div> </div> </div> <div class="card"> <div class="card-body"> <label class="form-label">File structure</label> <div class="form-check"> <input class="form-check-input" type="radio" id="unified" ng-model="data.file_structure" value="unified"> <label class="form-check-label" for="unified"> <span class="info">unified</span> </label> </div> <div class="form-check"> <input class="form-check-input" type="radio" id="separated" ng-model="data.file_structure" value="separated"> <label class="form-check-label" for="separated"> <span class="info">separated</span> </label> </div> </div> </div> <div class="card"> <div class="card-body"> <div class="form-group"> <label><code>worker_processes</code></label> <select class="form-control" ng-model="data.worker_processes"> <option value="auto">auto</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> </select> </div> <div class="form-group"> <label class="form-label"><code class="info">user</code></label> <input type="text" class="form-control form-control-sm" ng-model="data.user"> </div> <div class="form-group"> <label class="form-label"><code class="info">pid</code></label> <input type="text" class="form-control form-control-sm" ng-model="data.pid"> </div> <div class="form-group"> <label class="form-label"><code class="info">access_log</code></label> <input type="text" class="form-control form-control-sm" ng-model="data.access_log"> </div> <div class="form-group"> <label class="form-label"><code class="info">error_log</code></label> <input type="text" class="form-control form-control-sm" ng-model="data.error_log"> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="gzip" ng-model="data.gzip"> <label class="form-check-label" for="gzip"> <span class="info"><code>gzip</code></span> </label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="server_tokens" ng-model="data.server_tokens"> <label class="form-check-label" for="server_tokens"> <span class="info"><code>server_tokens</code></span> </label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="log_not_found" ng-model="data.log_not_found"> <label class="form-check-label" for="log_not_found"> <span class="info"><code>log_not_found</code></span> </label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="limit_req" ng-model="data.limit_req"> <label class="form-check-label" for="limit_req"> <span class="info"><code>limit_req</code></span> </label> </div> </div> </div> <div class="card"> <div class="card-body"> <div class="form-group"> <label class="form-label"><span class="info">assets <code>expires</code></span></label> <input type="text" class="form-control form-control-sm" ng-model="data.expires.assets"> </div> <div class="form-group"> <label class="form-label"><span class="info">media <code>expires</code></span></label> <input type="text" class="form-control form-control-sm" ng-model="data.expires.media"> </div> <div class="form-group"> <label class="form-label"><span class="info">svg <code>expires</code></span></label> <input type="text" class="form-control form-control-sm" ng-model="data.expires.svg"> </div> <div class="form-group"> <label class="form-label"><span class="info">fonts <code>expires</code></span></label> <input type="text" class="form-control form-control-sm" ng-model="data.expires.fonts"> </div> </div> </div> </div> <div class="col-md-6 col-lg-7 files"> <div class="row"> <div class="file" ng-class="data.file_structure === 'separated' || data.https || (data.php !== 'off' && data.wordpress) ? 'col-xl-6' : 'col-xl-12'"> <strong>/etc/nginx/nginx.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-nginx"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/nginx.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-nginx" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.file_structure === 'separated'"> <strong>/etc/nginx/sites-enabled/{{ data.domain }}.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-domain"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/example.com.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-domain" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.https"> <strong>/etc/nginx/_ssl.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-ssl"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_ssl.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-ssl" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.https"> <strong>/etc/nginx/_letsencrypt.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-letsencrypt"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_letsencrypt.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-letsencrypt" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.file_structure === 'separated'"> <strong>/etc/nginx/_general.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-general"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_general.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-general" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.php !== 'off' && data.file_structure === 'separated'"> <strong>/etc/nginx/_php.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-php"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_php.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-php" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.php !== 'off' && (data.file_structure === 'separated' || (data.php !== 'off' && data.wordpress))"> <strong>/etc/nginx/_php_fastcgi.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-php_fastcgi"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_php_fastcgi.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-php_fastcgi" class="code highlighted"></div> </div> <div class="col-xl-6 file" ng-if="data.php !== 'off' && data.wordpress && data.file_structure === 'separated'"> <strong>/etc/nginx/_wordpress.conf</strong> <button class="btn btn-light btn-clipboard" ngclipboard data-clipboard-target="#file-wordpress"> <img src="https://cdn.nginxconfig.io/assets/img/clipboard.svg" alt="Copy to clipboard"> </button> <div class="code source"> <pre><code class="nginx" ng-include="'templates/_wordpress.conf.html'" onload="refreshHighlighting()"></code></pre> </div><div id="file-wordpress" class="code highlighted"></div> </div> </div> </div> <div class="col-md-3 sidebar"> <div class="adsbygoogle-container"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6543577519725877" data-ad-slot="1857879957" data-ad-format="auto"></ins> <script> (window.adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="note">advertisement</div> </div> </div> </div> </div> </main> <footer> <div class="container-fluid"> Lovingly made at <img src="https://cdn.nginxconfig.io/assets/img/balaton.svg" alt="Lake Balaton" class="balaton"><span class="text-muted">(<a href="https://en.wikipedia.org/wiki/Lake_Balaton" target="_blank">Lake Balaton, Hungary</a>)</span><br> BTC: <strong>1CeKtgNStn5BGk46gt14kNMhsnJoFGUfkN</strong> </div> </footer> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-3084378-31"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-3084378-31'); </script> <script src="https://cdn.nginxconfig.io/assets/js/highlight.min.js?v=9.12.0"></script> <script src="https://cdn.nginxconfig.io/assets/js/clipboard.min.js?v=1.7.1"></script> <script src="https://cdn.nginxconfig.io/assets/js/angular.min.js?v=1.6.8"></script> <script src="https://cdn.nginxconfig.io/assets/js/ngclipboard.min.js?v=1.1.3"></script> <script src="https://cdn.nginxconfig.io/assets/js/app.js"></script> </body> </html>