5/01/2017 · nginx

Nginx Kurulumu

Centos 7 üzerinde Nginx Kurulumu.
Nginx hakkında edebiyat yapmaya gerek yok bilen biliyor zaten :)
Apache, Litespeed ve diğer web sunucularına göre daha düşük kaynaklar ile büyük işler başarabilirsiniz.

Nginx kurulumu için gerekli repoyu sunucumuzda oluşturalım ve Nginx'in kararlı olan en son sürümünü kuralım.

sudo nano /etc/yum.repos.d/nginx.repo  

Aşağıdaki parametreleri üstte nano ile açtığımız dosyaya ekleyip kaydedelim.

[nginx]
name=nginx repo  
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/  
gpgcheck=0  
enabled=1  

Sunucuyu güncelleyelim.

sudo yum update  

Nginx'i kuralım. Bu şekliyle rpm olarak kurulacaktır. Eğer kaynak koddan kurmak istiyorsanız Nginx ile canlı yayın yapmak isimli makaleden yardım alabilirsiniz.

sudo yum install nginx -y  

Sunucu başladığında Nginx'ide başlatmak için aşağıdaki komutu çalıştıyoruz.

sudo systemctl enable nginx.service  

Aşağıdaki gibi ekran çıktısı olması gerekiyor.

Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.  

Nginx'i başlatalım.

sudo service nginx start  

Nginx çalışıyor mu kontrol edelim.

sudo service nginx status  

Ekran çıktısı;

Nginx'in varsayılan karşılama sayfasına sunucunuzun ip adresini yazıp ulaşabilirsiniz.

Nginx'in varsayılan sayfasının sunucuda bulunduğu dizin.

[[email protected] ~]# ls -l /usr/share/nginx/html/
total 8  
-rw-r--r--. 1 root root 537 Oct 18 19:37 50x.html
-rw-r--r--. 1 root root 612 Oct 18 19:37 index.html

Nginx'in ve konfigürasyon dosyalarının bulunduğu dizin.

[[email protected] ~]# ls -l /etc/nginx/
total 32  
drwxr-xr-x. 2 root root   25 Jan  5 03:25 conf.d  
-rw-r--r--. 1 root root 1007 Oct 18 19:37 fastcgi_params
-rw-r--r--. 1 root root 2837 Oct 18 19:37 koi-utf
-rw-r--r--. 1 root root 2223 Oct 18 19:37 koi-win
-rw-r--r--. 1 root root 3957 Oct 18 19:37 mime.types
lrwxrwxrwx. 1 root root   29 Jan  5 03:25 modules -> ../../usr/lib64/nginx/modules  
-rw-r--r--. 1 root root  643 Oct 18 19:35 nginx.conf
-rw-r--r--. 1 root root  636 Oct 18 19:37 scgi_params
-rw-r--r--. 1 root root  664 Oct 18 19:37 uwsgi_params
-rw-r--r--. 1 root root 3610 Oct 18 19:37 win-utf

Nginx ile ilgili genel ayarların bulunduğu conf dosyası.
Bu önemli bir dosya. Nginx kullanıcısı, kaç cpu kullanacağı, loglar, bağlantı zaman açımı süreleri ve yüzlerce ayarı bu dosya içerisinde yapabilirsiniz.

cat /etc/nginx/nginx.conf  

Ekran çıktısı;

user  nginx;  
worker_processes  1;

error_log  /var/log/nginx/error.log warn;  
pid        /var/run/nginx.pid;


events {  
    worker_connections  1024;
}


http {  
    include      /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Nginx'in varsayılan karşılama sayfasının bulunduğu conf dosyasın olduğu dizin.

[[email protected] ~]# ls -l /etc/nginx/conf.d/
total 4  
-rw-r--r--. 1 root root 1097 Oct 18 19:35 default.conf

Bu dosya içerisinde gördüğünüz gibi server_name localhost yazmaktadır. Ip adresinizi internet tarayıcınıza yazıp karşılaştığınız varsayılan sayfa için buradaki conf ayarları gerekmektedir.

cat /etc/nginx/conf.d/default.conf  

Ekran çıktısı.

server {  
    listen     80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}