Hits : 5049

nginx :: a very simple tutorial


Contents


nginx


http://www.nginx.net/

http://wiki.nginx.org/Main

Το λογισμικό nginx [προφέρεται ως engine x] είναι ένας διακομιστής HTTP και διακομιστής μεσολάβησης για το ηλεκτρονικό ταχυδρομείο

Nginx is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server.

top

Installation


Μία πολύ απλή εγκατάσταση μπορεί να γίνει με τις παρακάτω εντολές:

$ wget -c http://sysoev.ru/nginx/nginx-0.6.35.tar.gz
$ tar jxvf nginx-0.6.35.tar.gz
$ cd nginx-0.6.35
$ ./configure
$ make
$ make install


Με τις παραπάνω εντολές έχουμε καταφέρει να εγκαστήσουμε τον web server μας.
Η εγκατάσταση εξ'ορισμού (όπως παραπάνω) ορίζει την διαδρομή του httpd daemon να είναι η εξής:
/usr/local/nginx/sbin/nginx

Φυσικά με την εντολή:

./configure --help


Μπορεί να δει κανείς το πλήθος των επιλογών που μπορεί να ορίσει, όπως για παράδειγμα να ορίσεις τον nginx ως mail proxy

top

Check


Για να δούμε την έκδοση του προγράμματος

# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/0.6.35


Για να δούμε περισσότερες πληροφορίες:

# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/0.6.35
built by gcc 4.3.2 (Ubuntu 4.3.2-1ubuntu12) 
configure arguments: --prefix=/usr/local/nginx/ --with-debug


Για να δούμε ότι όλα παίζουν σωστά, ως διαχειριστής πληκτρολογούμε την παρακάτω εντολή :

# /usr/local/nginx/sbin/nginx -t


Εάν θέλουμε να τρέξουμε τον nginx με κάποιο συγκεκριμένο αρχείο:

# /usr/local/nginx/sbin/nginx -c nginx.new.conf


top

Configuration


Αφού ολοκληρώσουμε την εγκατάσταση είμαστε έτοιμοι να δούμε ότι όλα είναι δουλεύουν σωστα.

Το αρχείο ρυθμίσεων του nginx βρίσκεται κάτω από τον κατάλογο της εγκατάστασης:

/usr/local/nginx/conf/nginx.conf

ένα τυπικό παράδειγμα του αρχείου ρυθμίσεων είναι το εξής:

Formatter "highlight/html" not found

Για να πραγματοποιήσουμε τυπικό έλεγχο της σωστής λειτουργίας της υπηρεσίας, που μόλις εγκαταστήσαμε,
χρειάζεται να εκκινήσουμε την υπηρεσία με την παρακάτω εντολή:

# /usr/local/nginx/sbin/nginx


Και στην συνέχεια στον firefox πληκτρολούμε την εξής ηλεκτρονική διεύθυνση:

Formatter "highlight/html" not found

Το οποίο θα μας επιστρέψει το παρακάτω μήνυμα:

Welcome to nginx!

Ο αρχικός κατάλογος στον οποίο μπορούμε να αποθηκεύσουμε τις ιστοσελίδες μας είναι ο εξής:

Ανοίγουμε έναν http client (web browser --> firefox) και πληκτρολογούμε το εξής:

/usr/local/nginx/html/

top

Παράρτημα


O nginx web server έχει την δυνατότητα να συνδεθεί με την php ώστε να υποστηρίζει δυναμικά site.
Ο τρόπος με τον οποίο γίνεται αυτό είναι μέσω της χρήσης του fastcgi.

Περισσότερα για το fastcgi μπορεί κανείς να βρει στα παρακάτω urls:

http://wiki.nginx.org/NginxHttpFcgiModule
http://www.fastcgi.com
http://en.wikipedia.org/wiki/FastCGI

php 


http://php.net/

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

Για την τυπική εγκατάσταση της php πρέπει να δηλώσουμε κατά το configure την υποστήριξη για fast-cgi
$ wget -c http://gr2.php.net/distributions/php-5.2.9.tar.bz2
$ tar jxvf php-5.2.9.tar.bz2
$ cd php-5.2.5
$ ./configure --enable-fastcgi
$ make
$ make install


Ο απλούστερος τρόπος (μιας και η php το υποστηρίζει) είναι να τρέξουμε την php σε μία TCP πόρτα
στην οποία θα ακούει τα αιτήματα του web server μας για να εξυπηρετεί τις σελίδες php που έχουμε

Πχ.

./php-cgi -b 127.0.0.1:8888

nginx conf


Τώρα θα πρέπει να δηλώσουμε στον nginx web server μας όλες τις php σελίδες μας να τις στέλνει στην fast-cgi php 
για να μεταφράζονται σε html.

Οπότε προσθέτουμε το εξής στο αρχείο ρυθμίσεων:

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:8888;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
    }

Manage Nginx


Ένα απλό script με το οποίο διαχειριζόμαστε τον nginx web server

Μέσα από το παρακάτω script μπορούμε να:

το αντιγράφεται στο /etc/init.d/nginx
κι έπειτα:

chmod 540 /etc/init.d/nginx


#!/bin/sh
# description: Start/Stop nginx Web Server

# ebal 16/03/2009
name="nginx"
desc="Web Server"
path="/opt/nginx"
pidfile="$path/logs/nginx.pid"
daemon=$path"/sbin/"$name

if [ -f $pidfile ];
then
        pid=`cat $pidfile`
        status=1
else
        status=0
fi

  case "$1" in

    'status')
      if [ 1 -eq $status ]; then
        echo
        echo $name $desc" : is Up & Runnning"
        echo "PID of" $name" : "$pid
        echo
      else
        echo
        echo $name $desc "is NOT running";
      fi
    echo
    ;;
 
    'start')
      if [ 1 -eq $status ]; then
        $0 status
      else
        echo "Starting "$name"..."
        $daemon
        sleep 1
        $0 status

      fi
    ;;
    'stop')
      if [ 1 -eq $status ]; then
        echo "Stoping "$name $desc"..."
        kill $pid
        sleep 1
        $0 status
      else
        $0 status
      fi
    ;;

   'restart')
       $0 stop
       $0 start
    ;;

   'version')
        $daemon -V
    ;;

   'check')
        $daemon -t
    ;;

    *)
      echo -n "Usage: $0 {start|stop|restart|status|check|version)";
      echo "";
    exit 1
  esac


top