Nginx web sunucusunu Debian 12’ye nasıl kurabilirim? Bu kılavuz, Nginx web sunucusunu Debian 12’ye kurmak için basit adımlarda size yol gösterecektir.
Nginx Web Sunucusunun Kurulumu
Debian 12’yi kurdunuz ve üzerinde bazı web uygulamaları çalıştırmak mı istiyorsunuz? İnternette en sık kullanılan HTTP sunucuları olan Apache veya Nginx’i kurabilir ve web uygulamanızı sunuculayacak şekilde yapılandırabilirsiniz.
Peki, Nginx web sunucusunu Debian 12’ye nasıl kolayca kurabiliriz? Adımlar aşağıda özetlendiği gibidir;
Sistem Güncellemesini Çalıştırın
Debian 12’de güncel paketler kurduğunuzdan emin olmak için aşağıdaki komutu çalıştırarak paket önbelleğini güncelleyin;
sudo apt update
Nginx Web Sunucusunu Kurun
Debian 12 üzerinde Nginx web sunucusu kurmak için aşağıdaki komutu yürütün;
apt install nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
nginx-common
Suggested packages:
fcgiwrap nginx-doc
The following NEW packages will be installed:
nginx nginx-common
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 640 kB of archives.
After this operation, 1,696 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Nginx Hizmetini Başlatın
Kurulum tamamlandıktan sonra, Nginx başlatılır ve sistem önyüklemesinde çalışması etkinleştirilir.
Aşağıdaki komutu kullanarak durumu onaylayabilirsiniz;
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2023-06-14 19:08:00 EAT; 44s ago
Docs: man:nginx(8)
Process: 2350 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 2351 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 2377 (nginx)
Tasks: 3 (limit: 2285)
Memory: 2.3M
CPU: 23ms
CGroup: /system.slice/nginx.service
├─2377 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─2379 "nginx: worker process"
└─2380 "nginx: worker process"
Jun 14 19:08:00 bookworm systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
Jun 14 19:08:00 bookworm systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.
Başlatılmamışsa veya sistem önyüklemesinde çalışması etkinleştirilmemişse, Nginx hizmetini başlatmak için aşağıdaki komutu çalıştırın;
systemctl enable --now nginx
Nginx kurulumunu doğrulayın
Artık kurulumunu doğrulamak için tarayıcıdan Nginx’e erişmeyi deneyebilirsiniz.
http://server-IP adresini kullanabilirsiniz.
Nginx kuruluysa ve düzgün çalışıyorsa Nginx Test sayfasını görürsünüz;

Nginx ile Özel Site Oluşturma
Nginx kullanarak kendi sitenizi oluşturabilir ve sunabilirsiniz.
Varsayılan olarak, Nginx belge kök dizini olarak /var/www/html’yi kullanır. Web kök dizini olarak da bilinir ve web sunucusunun istemcilere hizmet verecek dosyaları aradığı ana dizindir.
Yani kendi sayfanıza hizmet vermek istiyorsanız uygulama dizininizi /var/www/ veya /var/www/html altında oluşturabilirsiniz.
Bu demoda, temel site html içeriğimizi koyacağımız kifarunix adlı bir dizin oluşturuyoruz.
mkdir /var/www/html/kifarunix
vim /var/www/html/kifarunix/index.html
Bizim html yapılandırmalarımız;
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Kifarunix.com</title>
<style>
body {
display: flex;
justify-content: center;
align-items: flex-start;
min-height: 100vh;
text-align: center;
font-family: Arial, sans-serif;
margin: 0;
}
.container {
max-width: 600px;
margin-top: 20vh;
}
h1 {
font-size: 28px;
margin-bottom: 20px;
}
p {
font-size: 18px;
line-height: 1.5;
margin-bottom: 10px;
}
a {
color: #007bff;
}
</style>
</head>
<body>
<div class="container">
<h1>Welcome to Kifarunix.com</h1>
<p>This is a sample HTML page for my website.</p>
<p>Feel free to customize this page with your own content.</p>
<p>For more information, visit <a href="https://www.kifarunix.com">kifarunix.com</a>.</p>
</div>
</body>
</html>
Ardından, dizinin sahipliğini güncelleyin;
chown -R www-data: /var/www/html/kifarunix/
Nginx’i sitenize hizmet verecek şekilde yapılandırın. Benzer şekilde, site içeriğinizi yayınlamak için kendi Nginx sanal sunucu yapılandırmanızı oluşturun;
cat > /etc/nginx/sites-available/kifarunix << 'EOL'
server {
listen 80;
server_name kifarunix-demo.com;
root /var/www/html/kifarunix;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/kifarunix_error.log;
access_log /var/log/nginx/kifarunix_access.log combined;
}
EOL
Yapılandırma sözdizimi hataları için Nginx’i kontrol edin;
nginx -t
Testler tamam ise şöyle bir çıktı görmelisiniz;
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ardından, sitenizi etkinleştirin;
ln -s /etc/nginx/sites-available/kifarunix /etc/nginx/sites-enabled/kifarunix
Varsayılan Nginx sitesini devre dışı bırakın;
unlink /etc/nginx/sites-enabled/default
Nginx hizmetini yeniden başlatın;
systemctl restart nginx
Güvenlik Duvarında Nginx HTTP Bağlantısına İzin Verme
Güvenlik duvarının arkasındaysanız, Nginx’in harici erişimine izin vermek için 80/TCP bağlantı noktasını açmanız gerekir.
UFW;
ufw allow "WWW"
IPTABLES;
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Firewalld;
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
Nginx HTTP Bağlantısını Doğrulayın
Web tarayıcısından site işlemenizi doğrulayın, http://server-IP-or-resolvable-domain-name.

Nginx’i HTTPS ile yapılandırma
Nginx’te HTTPS’yi etkinleştirmek istiyorsanız, bunu nasıl yapabilirsiniz?
SSL/TLS sertifikaları oluşturun
Her şeyden önce, SSL/TLS sertifikalarını oluşturmanız gerekir.
Bu kılavuzda kendinden imzalı SSL sertifikaları kullanacağız. Ticari sertifikaları kullanma süreci bu kılavuzun kapsamı dışındadır.
Özel anahtar oluşturma
mkdir /etc/ssl/kifarunix
openssl genrsa -out /etc/ssl/kifarunix/kifarunix-private.key 4096
CSR oluşturma
openssl req -new -key /etc/ssl/kifarunix/kifarunix-private.key \
-out /etc/ssl/kifarunix/kifarunix-csr.pem \
-subj "/C=US/ST=CA/L=San Francisco/O=Organization/CN=kifarunix.com"
Ayarlar;
/C=
: Ülke (2 harfli ISO kodu)/ST=
: Eyalet veya İl/L=
: Mahalle veya şehir/O=
: Organizasyon/CN=
: Ortak Ad (ör. alan adı)
SSL/TLS sertifikası oluşturun;
openssl x509 -req -days 3650 -in /etc/ssl/kifarunix/kifarunix-csr.pem \
-signkey kifarunix-private.key -out /etc/ssl/kifarunix/kifarunix-cert.crt
Örnek çıktı;
Certificate request self-signature ok
subject=C = US, ST = CA, L = San Francisco, O = Organization, CN = kifarunix.com
Nginx SSL Modüllerini Kurma/Etkinleştirme
Nginx SSL modülleri varsayılan olarak etkindir. Aşağıdaki komutu kullanarak onaylayın;
nginx -V 2>&1 | grep -o with-http_ssl_module
with-http_ssl_module
Nginx’i SSL/TLS sertifikalarını kullanacak şekilde yapılandırma
Şimdi yapılandırmanızı SSL/TLS kullanacak şekilde güncelleyin.
Yukarıdaki yapılandırmamızı güncelleyeceğiz. Bu yüzden sizinkini buna göre güncelleyin.
vim /etc/nginx/sites-available/kifarunix
server {
listen 80;
server_name kifarunix-demo.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name kifarunix-demo.com;
ssl_certificate /etc/ssl/kifarunix/kifarunix-cert.crt;
ssl_certificate_key /etc/ssl/kifarunix/kifarunix-private.key;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling_verify on;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
root /var/www/html/kifarunix;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/kifarunix_error.log;
access_log /var/log/nginx/kifarunix_access.log combined;
}
Dosyayı kaydedin ve çıkın.
SSL ayarları, burada sağlanan güçlü şifrelere dayanmaktadır. Onları size uyacak şekilde özelleştirin.
Yapılandırmamızda görebileceğiniz gibi, DH parametrelerini kullanıyoruz (ssl_dhparam /etc/nginx/dhparam.pem);
Bu yüzden aşağıdaki komutu kullanarak bunları oluşturmamız gerekiyor;
openssl dhparam -out /etc/nginx/dhparam.pem 4096
Herhangi bir hata için Nginx’i kontrol edin;
nginx -t
hata yoksa yeniden başlatın;
systemctl restart nginx
Nginx HTTPS Bağlantı Noktasını Güvenlik Duvarında Ayarlama
Güvenlik duvarının arkasındaysanız, Nginx’in harici erişimine izin vermek için 443/TCP bağlantı noktasını açmanız gerekir.
UFW;
ufw allow "WWW Secure"
Veya;
ufw allow 443/tcp
IPTABLES;
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Firewalld;
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
Nginx HTTPS Bağlantısını Doğrulama
https://domain-name.com adresini ziyaret ederek artık sitenize HTTPS aracılığıyla erişebildiğinizi doğrulayın.

Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.