Merhaba, bu makalemizde Centos Web Panel’de Nginx Proxy kurulumu ve nginx.conf yapılandırmasını göreceğiz.
Sol Menü > Apache Settings > Select WebServers
Select Default Web Servers which you want to use bölümünde 3. seçenek olan Apache & Nginx Reverse Proxy‘i seçip Save & Rebuild Configuration butonuna tıklıyoruz
Kurulumu tamamladık , son olarak Rebuild All Virtual Hosts butonuna tıklıyoruz ve çıkan uyarı penceresinde Tamam butonuna tıklıyoruz.
Kontrol etmek için www.webconfs.com adresinden sunucuda barındırdığımız bir siteyi Enter the URL whose headers you want to view sütununa yazıp Submit butonuna tıklıyoruz.
Evet, yukarıdaki resimde gördüğümüz gibi sunucumuzun Web Server’ı Nginx arkasına almış bulunuyoruz.
Şimdi ise nginx.conf ayarlarını yapılandırmaya geldi.Bizim işlem yaptığımız sunucuda 2 Core CPU ve 1 GB RAM var , ona göre yapılandırma yapacağız.
Öncelikle Putty ile sunucumuza SSH konsolundan bağlanıyoruz. nginx.conf dosyasının bulunduğu dizine geçiyoruz.
cd /etc/nginx
Default olarak gelen nginx.conf dosyasının yedeğini alalım
mv nginx.conf nginx.conf.backup
Şimdi de
nano nginx.conf
komutunu yazıp boş bir nginx.conf dosyası oluşturup içeriğine aşağıdaki kodları ekleyip CTRL+X kombinasyonuyla nginx.conf dosyamızı kaydediyoruz
user nginx; # nginx’i kullanacak kullanıcı
worker_processes 2; # çalışacak worker sayısı. İşlemcinizdeki core durumuna göre bu rakamı arttırabilirsiniz.
error_log /var/log/nginx/error.log; # error logları için dizin.
pid /var/run/nginx.pid; # pid dosyasının yeri
events {
worker_connections 1024; # maximum client sayısını burada belirliyoruz.
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
#access loglarının formatı ve lokasyonu.
log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
access_log /var/log/nginx/access.log main;
# proxy cache için dizin ve size ayarları
proxy_cache_path /var/cache/nginx keys_zone=staticfilecache:10m max_size=500m;
proxy_ignore_headers “X-Accel-Expires”;
proxy_ignore_headers “Expires”;
proxy_ignore_headers “Cache-Control”;
# keepalive timeout süreleri ve gzip ayarları
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
# conf.d altındaki dosyalarıda buraya include ediyor.
include /etc/nginx/conf.d/*.conf;
}
nginx.conf dosyasını kaydettikten düzenleyeceğimiz diğer bir dosya /etc/nginx/conf.d/ dizininin altındaki default.conf dosyasıdır.Bu dosya default website tanımlarının yapıldığı alandır.
Önce;
/etc/nginx/conf.d/
dizinine girip default.conf dosyasının yedeğini alalım
mv default.conf default.conf.bak
Daha sonra komut satırına
nano default.conf
yazıp boş bir default.conf dosyası açarak aşağıdaki kodları bu dosyaya kopyalayıp CTRL+X kombinasyonu ile dosyamızı kaydediyoruz
#
# The default server
#
server {
listen 80 default_server;
# server_name olarak alan adi da yazilabilir; bu sekilde birakilirsa
# catchall gorevi gorur. Bu sunucuyu gosteren tum alan adlari icin default vhost.
server_name _;
# Nginx kok dizini ve default dokumanlar.
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
# Bulunamayan icerikle alakali hatalari /404.html’e yonlendir.
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# 5x server error’lari /50x.html sayfasina yonlendir.
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# php dosyalarinin nasil islenecegi ile ilglii bolum:
location ~ \.php$ {
root /usr/share/nginx/html;
# fpm’e socket uzerinden erismek icin (ki bir bu sekilde yapiyoruz):
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
# Alternatif olarak php-fpm’e TCP uzerinden erismek icin (default yontem bu ama biz kullanmiyoruz.)
# fastcgi_pass 127.0.0.1:9000;
# NOT: Yukarıdaki parametreyi uncomment etmeden once,
# 1 – Ayni dosyadaki fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; ibaresini commnet out edin.
# 2 – /etc/php-fpm.d/www.conf dosyasindaki listen = /var/run/php-fpm/php-fpm.sock satırını uncomment out
# etmeniz ve yerine listen = 127.0.0.1:9000 ekledikten sonra fpm’i restart etmeniz gerekir.
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# .htaccess dosyalarina erisime izin verme.
location ~ /\.ht {
deny all;
}
# favicon dosyalari icin access log’a yazma ve 204 (No Content) status kodu dondur.
location ~* \.(ico)$ {
access_log off;
log_not_found off;
try_files /favicon.ico =204;
}
# static contet dosyalarinin 72 saat cache’te tutulmasini soyle. Access log’a yazma.
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
access_log off;
expires 72h;
}
}
Şimdi komut satırına
nginx -t
komutunu yazıp kontrol edelim. Eğer bir sorun yoksa nginx servisini başlatalım
chkconfig nginx on
service nginx start
Nginx servisimiz artık hazırdır.