Konfigürasyonların farklı dosyalarda tanımlanmasını tavsiye ederim. Bu şekilde daha yönetilebilir olur. Mantık olarak sites-available altında konfigürasyonlar tanımlanır. Uygulanması istenen konfigürasyonlar sites-enabled altında sembolik link ile linklenir.
map değişken yaratmak için kullanılır. $connection_upgrade isminde bir değişken tanımlanır. Bu değişken Connection http header bilgisini atamak için kullanılır.
limit_conn_zone tanımlanan key alan başına bağlantı limiti tanımlamak için kullanılır. Çoğunlukla tek bir ip adresinden yapılan bağlantı sayısını sınırlandırmak için kullanılır. İstemci/Client ip adresi key olarak kullanılmıştır. Belirli ip adresleri için bu kuralın uygulanması istenmemiştir. Bunu sağlamak için geo ve map kullanılarak dinamik bir yapı kurulmuştur. Key alanı boş değer olarak verirsen kural uygulanmaz, yok sayılır.
geo istemci/client ip adresi bazlı değişken tanımlamak için kullanılır. $whitelist adında bir değişken tanımlanır. Bu değişken $limit_key değişkenini tanımlamak için kullanılır.
Sunucu ismi olarak _ verildiğinde hiçbir isme uymayanların tümünü kapsar. Bu noktada tanımlanmış sunucu isimleri arasında yer almayan isme sahip bir request geldiğinde 404 sayfasına yönlendirme işlemi yapılmıştır. 80 ve 443 portu dinlenmektedir.
location request url bilgisine göre yapılandırma yapmak için kullanılır. @ ön eki ile yapılan tanımlandırmaya isim verilir. @reverse isminde yapılan tanımla kullanılmıştır.