9c6cca96c8 | ||
---|---|---|
.github | ||
conf.d | ||
h5bp | ||
test/vhosts | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
LICENSE.txt | ||
README.md | ||
mime.types | ||
nginx.conf |
README.md
Nginx Server Configs
Nginx Server Configs is a collection of configuration snippets that can help your server improve the web site's performance and security, while also ensuring that resources are served with the correct content-type and are accessible, if needed, even cross-domain.
Getting Started
Using the Nginx server configs repo directly has a few required steps to be able to work.
Check nginx.conf
settings
The first thing to check is that the nginx.conf
file contains appropriate values for
your specific install.
Most specific variables are:
user
error_log
pid
access_log
Nginx test and restart
-
To verify Nginx config
$ nginx -t
-
To verify Nginx config with a custom file
$ nginx -t -c nginx.conf
-
To reload Nginx and apply new config
$ nginx reload
Basic structure
This repository has the following structure:
./
├── conf.d/
│ ├── default.conf
│ └── templates/
├── h5bp/
│ ├── basic.conf
│ ├── location/
│ └── .../
├── mime.types
└── nginx.conf
-
conf.d/
This directory should contain all of the server definitions.
Except if they are dot prefixed or non .conf extension, all files in this folder are loaded automatically.
-
templates
folderFiles in this folder contain a
server{}
template for secure and non-secure hosts. They are intended to be copied in theconf.d
folder with allexample.com
occurrences changed to the target host.
-
-
h5bp/
This directory contains config snippets (mixins) to be included as desired.
There are two types of config files provided, individual config snippets and combined config files which provide convenient defaults.
-
basic.conf
This file loads a small subset of the rules provided by this repository to add expires headers, allow cross domain fonts and protect system files from web access. The
basic.conf
file includes the rules which are recommended to always be defined. -
location/
Files in this folder contain one or more location directives. They are intended to be loaded in the server context (or, in a nested location block).
-
-
mime.types
The mime.types file is responsible for mapping file extensions to mime types.
-
nginx.conf
The main nginx config file.
Usage
As a reference
To use as reference requires no special installation steps, download/checkout the repository to a convenient location and adapt your existing nginx configuration incorporating the desired functionality from this repository.
Directly
To use directly, replace the nginx config directory with this repository. for example:
nginx stop
cd /etc
mv nginx nginx-previous
git clone https://github.com/h5bp/server-configs-nginx.git nginx
# install-specific edits
nginx start
Manage sites
$ cd /etc/nginx/conf.d
-
Creating a new site
$ cp templates/example.com.conf .actual-hostname.conf $ sed -i 's/example.com/actual-hostname/g' .actual-hostname.conf
-
Enabling a site
$ mv .actual-hostname.conf actual-hostname.conf
-
Disabling a site
$ mv actual-hostname.conf .actual-hostname.conf
$ nginx reload
Support
- Nginx v1.8.0+
Contributing
Anyone is welcome to contribute, however, if you decide to get involved, please take a moment to review the guidelines:
Acknowledgements
Nginx Server Configs is only possible thanks to all the awesome contributors!
License
The code is available under the MIT license.