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:

The above will overwrite the default value of NGINX_MODULES_HTTP and set it to. To enable the  module without overwriting the default NGINX_MODULES_HTTP value, the following USE flag notation can be specified in :

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

Kurulumun onaylanması
The default nginx configuration defines a virtual server with the root directory set to. However due to, the nginx ebuild will only create the directory and without an index file. To have a working default configuration, create the directory and simple index file:

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:

For PHP 7.0 and newer PHP versions use following configuration:

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:

Alternatively, for systemd:

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:

Üçü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:

Reload nginx configuration without dropping connections:

Nginx'i yeniden başlat:

systemd
Start nginx web server:

Stop nginx web server:

Check the status of the service:

Enable service to start automatically on system reboot:

Reload nginx configuration without dropping connections:

Restart the nginx service:

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ı.