Özellikle forum sahibi bir kaç arkadaşımız geçtiğimiz günlerde bana ulaşarak abi NGINX’de XenForo nasıl yapılandırabiliriz diye sordu kendilerine anlattım. URL rotalarında sorun yaşayan herkesin derdine derman olacak şekilde gerekli olan yapılandırma dosyasını aşağıya bırakıyorum.
- XenForo 1 ve 2 sürümü ile uyumludur.
- SEO uyumlu rotalar için oluşturulmuştur.
libraries
veinternal_data
gibi belli başlı yerlere dışarıdan erişim kapatılmıştır.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name forum.mertcangokgoz.com;
set $base /var/www/forum.mertcangokgoz.com;
root $base/public;
# SSL
ssl_certificate /etc/letsencrypt/live/forum.mertcangokgoz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.mertcangokgoz.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/forum.mertcangokgoz.com/chain.pem;
# security
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# . files
location ~ /\.(?!well-known) {
deny all;
}
# security.txt
location /security.txt {
return 301 /.well-known/security.txt;
}
location = /.well-known/security.txt {
alias ~/security.txt;
}
# logging
access_log /var/log/nginx/forum.mertcangokgoz.com.access.log;
error_log /var/log/nginx/forum.mertcangokgoz.com.error.log warn;
# index.php
index index.php;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ ^/(internal_data|library|src|install)/(.*)$ {
internal;
}
location /install/data/ {
internal;
}
location /install/templates/ {
internal;
}
# handle .php
location ~ \.php$ {
# 404
try_files $fastcgi_script_name =404;
# default fastcgi_params
include fastcgi_params;
# fastcgi settings
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
# fastcgi params
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
}
}
# subdomains redirect
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name *.forum.mertcangokgoz.com;
# SSL
ssl_certificate /etc/letsencrypt/live/forum.mertcangokgoz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.mertcangokgoz.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/forum.mertcangokgoz.com/chain.pem;
return 301 https://forum.mertcangokgoz.com$request_uri;
}
# HTTP redirect
server {
listen 80;
listen [::]:80;
server_name .forum.mertcangokgoz.com;
location ^~ /.well-known/acme-challenge/ {
root /var/www/_letsencrypt;
}
location / {
return 301 https://forum.mertcangokgoz.com$request_uri;
}
}
Yapılandırmayı kendinize göre değiştirmeyi ihmal etmeyiniz. Bu yapılandırmayı kullanabilmek için minimum NGINX 1.14.0 sürümü yüklü olmalıdır.