Yukarıdaki makale ile Flarum’u kurduğunuzu varsayarak, kurulum sonrasında yapmanız gereken bir kaç ayardan bahsetmeye çalışacağım.
Flarum sadece tek kaynaktan çalıştığı için (Flarum, config.php’de belirtilen URL dışındaki URL’lerde çalışmaz.) diğer site URL’lerini config.php’de belirttiğimiz URL’ye yönlendireceğiz. NGİNX, htaccess desteklemediği için 301 yönlendirme işlemini site yayınlama dosyasında yapmamız gerekiyor. config.php’de site URL’sinin https://siteadi.com olduğunu varsayıyorum. Şimdi geriye kalan URL’leri https://siteadi.com’a yönlendireceğiz.
http://www.siteadi.com ---> https://siteadi.com
https://www.siteadi.com --->https://siteadi.com
http://siteadi.com ---> https://siteadi.com
yani hepsi https://siteadi.com’a yönelendirilecek.
NGİNX 301 YÖNLENDİRMESİ NASIL YAPILIR?
Bunu iki farklı şekilde yapabiliriz. İsterseniz SSH ile, isterseniz Filezilla ile flarum.conf dosyasını indirip düzenleme yaparak yapabiliriz. Ben her ikisine de anlatacağım.
SSH ile 301 yönlendirmesi nasıl yapılır?
Site yayın dosyasına flarum.conf adını verdiğinizi varsayıyorum, farklı bir isim verdiyseniz flarum yerine kendi kullandığınız adı yazın. Adın ne olduğunu bilmiyorsanız filezilla ile aşağıdaki yolu takip ederek bulabilirsiniz.
/etc/nginx/sites-available
- SSH ile sunucuda oturum açın.
sudo nano /etc/nginx/sites-available/flarum.conf
komutunu girin. NightKing yukarıda belirttiği
server {
listen 80;
listen [::]:80;
root /var/www/flarum/public;
index index.php index.html index.htm;
server_name websiteniz.com www.websiteniz.com;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
include /var/www/flarum/.nginx.conf;
}
dosya açılacak. Biz bu dosyada 301 yönlendirmesi yapacağız. Bunun için;
server {
listen 80;
server_name flarumtr.com www.flarumtr.com;
return 301 https://flarumtr.com$request_uri;
}
server {
listen 443 ssl;
server_name www.flarumtr.com;
ssl_certificate /etc/letsencrypt/live/flarumtr.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/flarumtr.com/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
return 301 https://flarumtr.com$request_uri;
}
server {
listen 443 ssl;
server_name flarumtr.com;
ssl_certificate /etc/letsencrypt/live/flarumtr.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/flarumtr.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
root /var/www/flarumtr/public;
index index.php index.html index.htm index.nginx-debian.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
}
location = /sitemap.xml { try_files $uri $uri/ /index.php?$query_string; }
location ~ /\.ht {deny all;}
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {expires 365d;}
include /var/www/flarumtr/.nginx.conf;
}
Yukarıda flarumtr.com ve www.flarumtr.com alan adlarını kendi alan adınız ile değiştirin. Tabi bunun öncesinde Let’s Encrypt SSL kurmuş olmanız gerekiyor. Dosyayı yukarıdaki kodlarla değiştirip kaydedip kapatın. Şimdi terminalde nginx -t
yazın. Eğer aşağıdaki gibi bir uyarı aldıysanız sorun yok, tekrardan terminalde systemctl restart nginx
komutunu çalıştırın.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Farklı bir hata uyarısı alırsanız bir şeyler yanlış gitmiştir, ayarlarınızı eski haline getirin. Hata aldığınız halde systemctl restart nginx
derseniz siteniz yayından kalkar, Nginx bozulur.
Aşağıdaki satırlar ne işe yarıyor
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Daha fazla bilgi için bakınız: https://scotthelme.co.uk/content-security-policy-an-introduction/
location = /sitemap.xml { try_files $uri $uri/ /index.php?$query_string; }
Sitemap eklentisini çalışması için yukarıdaki satırın eklenmesi gerekiyor. Eğer sitemap kurmamış iseniz düzenlemeden önce yukarıdaki satırı kaldırınız.
Fİlezilla ile Nasıl Yapılır
Aslında Filezilla ile yapacağımız işlem yukarıdaki anlatımla ile hemen hemen aynı. Sadece Filezilla ile site yayınlama dosyasını PC indirip yukarıda bahsettiğim düzenlemeleri yapıp dosyayı yerine upload etmek ile olacak.
- Filezilla Programı ile sunucuda oturum açın.
- Oturum açma sırasında sunucuya bağlanamadı hatası alırsanız, site IP kısmını
sftp://ip_adresiniz
şeklinde giriniz.
- Sonra aşağıdaki yolu takip ederek site yayınlama dosyasını bilgisayarınıza indirin.
/etc/nginx/sites-available
Sonrasında Yukarıda bahsettiğim kodları düzenleyip dosyayı kaydettikten sonra/etc/nginx/sites-available
dizinne geri yükleyin. Ardından SSH ile sunucuda oturum açıp nginx -t
dedikten sonra bir hata mesajı vermiyorsa systemctl restart nginx
demek yeterli olacak.
Bu işlemlerin ardından siteniz sadece https://siteadi.com’dan yayın hayatına devam edecek.
Bitti mi hayır. Bundan sonra ayrı bir derste NGINX optimizasyonu konusuna değineceğim. Herkese iyi forumlar….
@profilim