⚙️ Nginx Kurulumu

Nginx web sunucu yazılımının nasıl kurulacağını öğreneceğiz.

Nginx web sunucu yazılımının ne olduğunu ve nasıl çalıştığını öğrendikten sonra artık kurulum dersimize başlıyoruz. Bu dersimizde Ubuntu 16.04 işletim sistemini kullanarak konuları işleyeceğiz.

1. İşletim Sisteminin Güncellenmesi

Kuruluma başlamadan önce işletim sistemini güncellememiz fayda sağlayacaktır.

sudo apt update
sudo apt upgrade

2. Nginx Paketinin Kurulması

Nginx web sunucusunu artık indirerek yükleyebiliriz.

sudo apt install nginx

📌 Herhangi bir sebeple nginx yüklemesini kaldırmak ve tekrar kurmak istediğinizde tüm konfigürasyonu ile birlikte nginx i kaldırmak için şu komutu çalıştırabilir ve ardından yukarıdaki kodla birlikte tekrardan yükleyebilirsiniz.

sudo apt purge nginx nginx-common nginx-full

3. Nginx Konfigürasyonunun Ayarlanması

Hash bucket memory problemini engellemek için (Problem Nedir?) /etc/nginx dizini altında yer alan nginx.conf dosyasını nano veya gedit gibi editörlerle açarak server_names_hash_bucket_size 64 satırının başındaki # işaretini siliniz.

nginx.conf
.
.
server_names_hash_bucket_size 64;
# server_name_in_redirect off;
.
.

4. PHP-FPM Paketinin Kurulması

Sunucumuzda PHP dosyalarımızın yorumlanabilmesi için PHP-FPM paketimizi kurmalıyız. Bunun için aşağıdaki komutları çalıştırabilirsiniz.

sudo add-apt-repository ppa:ondrej/php
sudo apt-get install software-properties-common
sudo apt update
sudo apt-get install php7.3-fpm php7.3-cli php7.3-mysql phpunit

Paketleri kurduktan sonra /etc/php/7.3/fpm/ dizini altında yer alan php.ini dosyamızdaki ilgili alanları düzenleyelim.

php.ini
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Istanbul

Düzenlemelerimizin aktif olabilmesi için servisimizi yenileyelim.

sudo systemctl restart php7.3-fpm

Son olarak php -v komutu ile ekranda php versiyonunu görüyorsanız işlemimiz tamamdır.

5. Güvenlik Duvarını Ayarlama

İşletim sistemimizde güvenlik duvarımız etkinse Nginx web sunucusunun engellenmesini önlemek için Nginx i beyaz listeye eklemeliyiz.

Öncelikle güvenlik duvarı ile hangi uygulamaların kullanılabilir olduğunu görelim.

Komut
Çıktı
Komut
sudo ufw app list
Çıktı
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

Komutun çıktısında gördüğünüz uygulamalar için güvenlik duvarına kural yazabiliriz. Öyleyse ilk kuralımızı yazalım.

sudo ufw allow 'Nginx HTTP'

HTTP üzerinden yani 80 portundan gelen trafiğe izin vererek Nginx in kısıtlanmadan kullanılmasını sağladık. Şimdi son durum kontrolünü yapalım.

Komut
Çıktı
Komut
sudo ufw status
Çıktı
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)

Eğer bu komut sonrası Status: inactive çıktısını görüyorsanız güvenlik duvarınız zaten kapalı demektir. Bu aşamadaki işlemleri yapmanıza gerek yoktur.

6. Web Sunucu Kontrolü

Nginx web sunucusunu ikinci adımda yüklemiştik. Şimdi web sunucu servisinin durumunu kontrol edelim.

systemctl status nginx

Nginx web sunucu servisinin durumunu kontrol ettiğimizde aktif olduğunu görmemiz gerekiyor.

nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-12-09 11:38:13 PST; 49min ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process

Yukarıda ki çıktıda olduğu gibi Active: active (running) çıktısını gördüyseniz Nginx web sunucu yazılımı başarıyla çalışıyor demektir. Artık http://sunucu_ip_adresi veya localhost veya 127.0.0.1 adresleri üzerinden Nginx default sayfasına erişebilir ve aşağıdaki resimde olduğu gibi çıktıyı görebilirsiniz.

Nginx default sayfası

Nginx servisi üzerinde başlatma, durdurma, yeniden başlatma, konfigürasyonu yeniden yükleme işlemlerini yapabilmek için sudo systemctl xxx nginx komutundaki xxx yerine start, stop, restart ve reload terimlerini kullanabilirsiniz.

Artık Nginx web sunucumuzu başarıyla çalıştırdıktan sonra ilerleyen derslerimizde web sunucu uygulamalarımızı kurmaya başlayacağız.