Hoşgeldin Misafir

Nginx Kurulumu Ngx_pagespeed Le Birlikte (centos 7)

NasyoneL

NasyoneL

Karanlık Özgürlüktür
25 Ağu 2017
25,060 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Nginx Kurulumu Ngx_pagespeed Le Birlikte (centos 7)-

Ngx-pagespeed, sitenizi hızlandırmak ve sayfa yükleme süresini kısaltmak için kullanılabilecek ücretsiz ve açık bir Nginx modülüdür. Mevcut içeriğinizi veya iş akışınızı değiştirmeniz gerekmeden web performansı en iyi uygulamalarını sayfalara ve ilişkili varlıklara otomatik olarak uygulayarak çalışır. Ngx-pagespeed modülünü kullanarak CSS, HTML, png ve jpg gibi çeşitli dosyaları kolayca optimize edebilirsiniz.

Kuruluma geçelim

Nginx'i derlemek için bazı paketler yüklemeniz gerekecek. Aşağıdaki komutu çalıştırarak tüm bu paketleri yükleyebilirsiniz:

Kod:
sudo yum install gcc cmake unzip wget gcc-c++ pcre-devel zlib-devel -y

Nginx kaynağını indirmeniz gerekecek. Aşağıdaki komutu çalıştırarak indirebilirsiniz:

Kod:
wget http://nginx.org/download/nginx-1.12.0.tar.gz

Ardından ngx_pagespeed i indirmeniz gerek . Aşağıdaki komutu çalıştırarak indirebilirsiniz:

Kod:
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip

Her iki paket de indirildikten sonra, bunları aşağıdaki komutla arşivi açın.

Kod:
tar -xvzf nginx-1.12.0.tar.gz
tar -xvzf v1.12.34.2-stable.zip

Ardından, Nginx'i derlemek için PageSpeed optimizasyon kütüphanelerini de indirmeniz gerekecektir. Aşağıdaki komutla indirebilirsiniz:

Kod:
cd ngx_pagespeed-1.12.34.2-stable
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xvzf 1.12.34.2-x64.tar.gz
cd ..

Şimdi, Nginx'i pagepeed modülü ile derlemeye başlayalım.
İlk olarak, aşağıdaki komutla dizini Nginx kaynak dizinine değiştirin:

Kod:
cd nginx-1.12.0

Ardından, Nginx paketini aşağıdaki komutla yapılandırın:

Kod:
sudo ./configure --add-module=$HOME/ngx_pagespeed-1.12.34.2-stable --user=nobody --group=nobody --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}

Yapılandırma tamamlandığında, aşağıdaki komutu çalıştırarak Nginx'i derleyin:

Kod:
sudo make

Yukarıdaki komut birkaç dakika alacaktır. Bundan sonra aşağıdaki komutu çalıştırarak nginx'i yükleyebilirsiniz:

Kod:
sudo make install

Nginx yüklendikten sonra, Nginx için bir sembolik link oluşturmanız gerekir:

Kod:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Nginx'i durdurmak ve başlatmak için Nginx için bir başlangıç scriptini oluşturmanız da gerekecektir. /Etc/init.d dizininde nginx dosyası oluşturarak bunu yapabilirsiniz:


Kod:
sudo nano /etc/init.d/nginx

Aşağıdaki satırları ekleyin:

Kod:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -n "$user" ]; then
      if [ -z "`grep $user /etc/passwd`" ]; then
         useradd -M -s /bin/nologin $user
      fi
      options=`$nginx -V 2>&1 | grep 'configure arguments:'`
      for opt in $options; do
          if [ `echo $opt | grep '.*-temp-path'` ]; then
              value=`echo $opt | cut -d "=" -f 2`
              if [ ! -d "$value" ]; then
                  # echo "creating" $value
                  mkdir -p $value && chown -R $user $value
              fi
          fi
       done
    fi
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

İşiniz bittiğinde dosyayı kaydedin ve kapatın, ardından çalıştırma iznini verin:


Kod:
sudo chmod +x /etc/init.d/nginx

Şimdi nginx hizmetini başlatın ve aşağıdaki komutla önyükleme zamanında başlamasını sağlayın:


Kod:
sudo systemctl start nginx
sudo systemctl enable nginx

Ardından, ngx-pagespeed için bir önbellek dizini oluşturmanız ve izinlerini düzeltmeniz gerekir.


Kod:
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

Ardından, /etc/nginx/nginx.conf dosyasında bazı değişiklikler yapmanız gerekecektir.

Kod:
sudo nano /etc/nginx/nginx.conf

Server bloğu arasına aşağıdaki kodu ekleyin:

Kod:
# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Aşağıdaki komutla herhangi bir yapılandırma hatası için Nginx'i kontrol edin:

Kod:
sudo nginx -t

Her şey yolundaysa, aşağıdaki çıktıyı görmelisiniz:

Kod:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Son olarak, değişikliklerin etkili olması için Nginx'i yeniden başlatın:

Kod:
sudo systemctl restart nginx