⚙️ 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.
1
sudo apt update
2
sudo apt upgrade
Copied!

2. Nginx Paketinin Kurulması

Nginx web sunucusunu artık indirerek yükleyebiliriz.
1
sudo apt install nginx
Copied!
📌
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.
1
sudo apt purge nginx nginx-common nginx-full
Copied!

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
1
.
2
.
3
server_names_hash_bucket_size 64;
4
# server_name_in_redirect off;
5
.
6
.
Copied!

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.
1
sudo add-apt-repository ppa:ondrej/php
2
sudo apt-get install software-properties-common
3
sudo apt update
4
sudo apt-get install php7.3-fpm php7.3-cli php7.3-mysql phpunit
Copied!
Paketleri kurduktan sonra /etc/php/7.3/fpm/ dizini altında yer alan php.ini dosyamızdaki ilgili alanları düzenleyelim.
php.ini
1
file_uploads = On
2
allow_url_fopen = On
3
memory_limit = 256M
4
cgi.fix_pathinfo = 0
5
upload_max_filesize = 100M
6
max_execution_time = 360
7
date.timezone = Europe/Istanbul
Copied!
Düzenlemelerimizin aktif olabilmesi için servisimizi yenileyelim.
1
sudo systemctl restart php7.3-fpm
Copied!
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ı
1
sudo ufw app list
Copied!
1
Available applications:
2
Nginx Full
3
Nginx HTTP
4
Nginx HTTPS
5
OpenSSH
Copied!
Komutun çıktısında gördüğünüz uygulamalar için güvenlik duvarına kural yazabiliriz. Öyleyse ilk kuralımızı yazalım.
1
sudo ufw allow 'Nginx HTTP'
Copied!
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ı
1
sudo ufw status
Copied!
1
Status: active
2
3
To Action From
4
-- ------ ----
5
OpenSSH ALLOW Anywhere
6
Nginx HTTP ALLOW Anywhere
7
OpenSSH (v6) ALLOW Anywhere (v6)
8
Nginx HTTP (v6) ALLOW Anywhere (v6)
Copied!
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.
1
systemctl status nginx
Copied!
Nginx web sunucu servisinin durumunu kontrol ettiğimizde aktif olduğunu görmemiz gerekiyor.
1
nginx.service - A high performance web server and a reverse proxy server
2
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
3
Active: active (running) since Mon 2019-12-09 11:38:13 PST; 49min ago
4
Docs: man:nginx(8)
5
Main PID: 2369 (nginx)
6
Tasks: 2 (limit: 1153)
7
CGroup: /system.slice/nginx.service
8
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
9
└─2380 nginx: worker process
Copied!
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.
Last modified 1yr ago