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)

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
Verify that the running nginx configuration has no errors:

By running nginx with the  option, it will validate the configuration file without actually starting the nginx daemon.

Verify processes are running
Check if nginx processes are running:

Verify bound addresses and ports
Verify nginx daemon is listening on the right TCP port (such as 80 for HTTP or 443 for HTTPS):

External resources

 * http://nginx.org/en/docs/beginners_guide.html - A nginx</tt> beginner's guide. Helpful for those who do not know much about nginx</tt>.
 * http://nginx.com/resources/admin-guide/ - The ngnix Admin guide. Helpful for web administrators who have been working in the field.
 * http://wiki.nginx.org/Main - nginx Wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP nginx config.