Hits :
5285
nginx :: a very simple tutorial
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 μπορούμε να:
- start
- stop
- restart
- status
- check
- version
το αντιγράφεται στο
/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