{{anchor href="top"}}
Hits : **{{hits}}**
== nginx :: a very simple tutorial ==
{{ToC from="h2" to="h3"}}
=== 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 ===
Μία πολύ απλή εγκατάσταση μπορεί να γίνει με τις παρακάτω εντολές:
%%(code)
$ 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**
Φυσικά με την εντολή:
%%(code)
./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
%%
Για να δούμε ότι όλα παίζουν σωστά, ως διαχειριστής πληκτρολογούμε την παρακάτω εντολή :
%%(code)
# /usr/local/nginx/sbin/nginx -t
%%
Εάν θέλουμε να τρέξουμε τον nginx με κάποιο συγκεκριμένο αρχείο:
%%(code)
# /usr/local/nginx/sbin/nginx -c nginx.new.conf
%%
((#top))
-----------
=== Configuration ===
Αφού ολοκληρώσουμε την εγκατάσταση είμαστε έτοιμοι να δούμε ότι όλα είναι δουλεύουν σωστα.
Το αρχείο ρυθμίσεων του nginx βρίσκεται κάτω από τον κατάλογο της εγκατάστασης:
**/usr/local/nginx/conf/nginx.conf**
ένα τυπικό παράδειγμα του αρχείου ρυθμίσεων είναι το εξής:
%%(html)
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
%%
Για να πραγματοποιήσουμε τυπικό έλεγχο της σωστής λειτουργίας της υπηρεσίας, που μόλις εγκαταστήσαμε,
χρειάζεται να εκκινήσουμε την υπηρεσία με την παρακάτω εντολή:
%%(code)
# /usr/local/nginx/sbin/nginx
%%
Και στην συνέχεια στον firefox πληκτρολούμε την εξής ηλεκτρονική διεύθυνση:
%%(html)
http://localhost
%%
Το οποίο θα μας επιστρέψει το παρακάτω μήνυμα:
**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
%%(code)
$ 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.
Οπότε προσθέτουμε το εξής στο αρχείο ρυθμίσεων:
%%(code)
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))
-----------