Centos Web Panel’de Nginx Proxy Kurulumu ve nginx.conf Yapılandırması

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

CWP-NGX-01

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

CWP-NGX-02

Kurulumu tamamladık , son olarak Rebuild All Virtual Hosts butonuna tıklıyoruz ve çıkan uyarı penceresinde Tamam butonuna tıklıyoruz.

CWP-NGX-03

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.

CWP-NGX-04

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.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir