Nginx/tr

nginx ufak, güçlü ve yüksek performanslı bir web/ters proxy (reverse proxy) sunucu yazılımıdır. Apache ve lighttpd gibi popüler web sunucu yazılımları için iyi bir alternatiftir.

Kurulum
paketini kurmadan önce, kullanabildiği USE bayraklarına göz atalım.

Genişletilmiş USE bayrakları
Nginx yeteneklerini artırmak için modülleri kullanır. Bu yaklaşımın faydalarını kullanmak için kurulumu sırasında hangi modüllerin kullanılacağını bazı USE setleri ile ayarlayabilirsiniz.


 * HTTP ile ilgili modüller  değişkeniyle,
 * E-posta özellikleri ile ilgili modüller  değişkeniyle,
 * Diğer üçüncü parti modüller de  değişkeni ile aktifleştirilebilir.

Bu değişkenler dosyasında tanımlanmalıdır. Detaylı açıklamaları ve  adreslerinde bulunabilir.

Örneğin  modülünü etkinleştirmek için:

Emerge
USE bayraklarıı ayarladıysanız, paketini kurun:

Kurulumun onaylanması
nginx paketi, servisi durdurmak, başlatmak ve yeniden başlatmak için yardımcı olan bir servis betiği ile gelir. nginx servisini başlatmak için:

nginx'in doğru şekilde çalıştığına emin olmak için, web tarayıcınızdan http://localhost adresine gidebilir veya curl gibi bir komut satırı aracını kullanabilirsiniz:

Yapılandırma
nginx yapılandırması dosyası üzerinde düzenlenir.

Tek site erişimi
Aşağıdaki örnek, (PHP gibi) dinamik özellikleri olmayan tek site yapılandırması içindir.

Birden çok site erişimi
Birden fazla yapılandırma dosyasında daha kolay yönetim sağlamak için  yönergesi kullanılabilir:

PHP desteği
PHP desteğini açmak için aşağıdaki satırları nginx yapılandırma dosyasına ekleyebilirsiniz. Bu örnekte nginx PHP ile iletişimini UNIX soketi üzerinden yapmakta.

Bu şekilde çalışabilmek için PHP FastCGI desteği ile (php-fpm) derlenmiş olmalıdır, bu da  bayrağı ile sağlanır:

Ardından PHP'yi  USE bayrağıyla tekrar derleyelim:

dosyasını inceleyip aşağıdaki satırı ekleyin:

php-fpm'e ait dosyasında zaman dilimini ayarlayın. Bunun için ilgili zaman dilimini aşağıda  ile belirtilen yere ekleyin:

Ardından php-fpm servisini başlatın:

php-fpm servisini açılışta başlamak üzere öntanımlı çalışma seviyesine ekleyin:

nginx servisini yeni yapılandırma ile yeniden yükleyin:

IP adresiyle eirşim kısıtlaması
Sıradaki örneğimiz belirlediğimiz bir sayfaya (bu örnekte /nginx_status) sadece seçtiğimiz kaynaklardan ulaşılabilmesi, bunlar aşağıdaki gibi: olabilir.
 * IP adresleri (Örn. 192.0.2.1 127.0.0.1)
 * IP ağ blokları (Örn. 198.51.100.0/24)


 * certain hosts (e.g. 192.0.2.1 127.0.0.1)
 * and IP networks (e.g. 198.51.100.0/24)

Basit yetkilendirme
nginx kullanıcı adı ve parola sorup yetkilendirme yapma desteğine de sahiptir:

dosyası aşağıdaki şekilde oluşturulabilir:

TLS desteği
Sadece TLS'in desteklenmesi ve güvensiz cipher desteğinin kullanılmaması önerilmekte.

Kurulumda konumuna sunucunun kendi imzaladığı sertifikalar yüklenmekte.

Daha fazla gizlilik
openssl kullanılarak bir diffie-hellman sertifikası oluşturulabilir:

Üçüncü parti modüller
Üçüncü parti modülü indirip dizinine koyun. Ardından elle derleyip, dosyasına şu şekilde ekleyin:

Üçüncü parti modül ile nginx'i tekrar derleyin:

OpenRC
Nginx'i başlatmak:

Nginx'i durdur:

Nginx'i öntanımlı çalışma seviyesine ekle:

Nginx'i yeniden başlat:

Olası Problemler
Problem yaşarsanız aşağıdaki komutlar sebebini bulmanıza yardımcı olabilir.

Yapılandırmayı onaylama
nginx ayar dosyalarının belirgin bir hatası olmadığını kontrol etmek için:

nginx komutunu  parametresi ile çalıştırırsanız, servis başlatmadan sadece kontrolleri yapacaktır.

İşlemlerin çalıştığına emin olun
nginx işlemlerinin çalıştığına emin olun:

Adres ve portların kullanımda olduğuna emin olun
nginx servisinin doğru portları dinlediğinden emin olun (HTTP için 80 ve HTTPS için 443 gibi):

Ayrıca bkz.

 * Apache - Popüler HTTP sunucusu
 * Lighttpd - Hızlı ve hafif bir web sunucu

Harici kaynaklar

 * http://nginx.org/en/docs/beginners_guide.html - nginx hakkında yeni başlayanlara yönelik bir klavuz.
 * http://nginx.com/resources/admin-guide/ - Yönetimini yapanlar için Nginx admin klavuzu.
 * http://wiki.nginx.org/Main - nginx Wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP nginx yapılandırması.