.

Εγκαταστήστε Nginx (καλύτερη από Apache ή Lighttpd) - VPS Bible PT 11

English Αγγλικά (αλλαγή)
  • Digg
  • Twitter
  • Technorati
  • del.icio.us
  • Facebook
  • MySpace
  • Reddit
  • StumbleUpon
  • LinkedIn
  • email

Ρύθμιση Unmanaged VPS (4 Newbies) - Μέρος 11: Nginx (καλύτερη από Apache) Web Server

Εγκαταστήστε Nginx - Nginx logo

Εγκατάσταση & ρύθμιση των Nginx web server, μικροαλλαγές τη διάρθρωση του αρχείου προεπιλογή, στη συνέχεια, τη δημιουργία vhost αρχείο με symlink είναι το αντικείμενο της παρούσας copy / paste τον τρόπο-να. Ώστε να ανοίξει το CLI και θα εξηγήσω.

Έτσι είμαστε έτοιμοι να εγκαταστήσετε ένα ελκυστικό αστέρι, Nginx (προφέρεται "κινητήρας-x"). Αλλά γιατί; Δεν είναι το καλύτερο Apache web υπηρετώ;

Apache με έχει υπηρετήσει καλά εδώ και χρόνια, τόσο σε τοπικό όσο και σε απομακρυσμένα φιλοξενεί, και εξακολουθεί να είναι επιθυμητή επιλογή για πολλούς μεγάλους χώρους.

Αλλά, κάπως σαν το Ubuntu, FireFox και jQuery, υπάρχει ένα νέο παιδί στην πόλη, και είναι πιο λιτή, απλούστερο να ρυθμίσετε και χρήσης, καθώς και για την ταχύτερη εξυπηρέτηση. Εισάγετε τον web server Nginx.

Εγκατάσταση Unmanaged VPS (4 Newbies) .. Η VPS Bible

Σε 20 copy / paste βήματα .. από το μηδέν σε ήρωα, κενό το πλαίσιο για την χαριτωμένη-ως server Linux.

Μετακινηθείτε προς τα κάτω για το πλήρες ευρετήριο σειρά.

Έτσι, hey, υπόστεγο κοινές & εικονικής ζήτω! Hope it helps. The_guv

Video: Εγκατάσταση & Ρύθμιση Nginx Web Server

Παρακολουθήστε το, er, guvideo για μια καλύτερη ιδέα για το πώς να το κάνουμε αυτό.

Αναχώρηση YouTube κανάλι the_guv κατά http://youtube.com/guvnrDOTcom

... ή αν δεν μπορείτε να ενοχλείται με το ότι, ή ακόμα και αν μπορείτε, εδώ είναι η λεπτομέρεια ...

Γιατί να επιλέξετε Nginx; Γιατί να μην Apache ή Lighttpd;

Δεν πρεσβεύουν να είναι ειδικός, απλά κάποιος που έχει ερευνήσει εξαιρετικά καλά. I αφορούσε πρωτίστως τα δύο πιο δημοφιλή, καλύτερη έδρα διακομιστές web, Apache και Lighttpd, και των νέων εναλλακτικών Turk, Nginx, για την οποία geekdom είναι όλα aflutter. Εδώ είναι μια περίληψη των βασικών συμπερασμάτων μου: --

  • Apache είναι Bloatware, φόρτωση αχρησιμοποίητο ενότητες ότι οι πόροι των αποβλήτων
  • Lighttpd RAM διαρροές άσχημα
  • Nginx σημεία αναφοράς το ταχύτερο, χρησιμοποιώντας το λιγότερο πόρων

Έχω χρησιμοποιήσει αυτό το πρίσμα-server βάρος των πόρων μου-βαρύ blog WordPress, guvnr.com, και είμαι εντυπωσιασμένος με ισχυρές επιδόσεις του. Επίσης σημαντικό είναι ότι δεν έχει ότι τα Windows-σαν τάση, μια θλίψη Apache επίσης, να σπαταλάμε πόρους, εκτελώντας μια δέσμη των υπηρεσιών που απλά δεν χρειάζεται.

Μην πάρετε το λόγο μου για αυτό. Δεν πρέπει, επειδή δεν έχω κανένα σημείο αναφοράς εκτελούνται δοκιμές. Google κάτι σαν Apache vs NginxNginx vs Lighttpd και έχουν διαβάσει. Και εδώ είναι το Nginx wiki.

Αποκτώντας την Τελευταία Nginx Έκδοση

Υπάρχουν δύο τρόποι για να εγκαταστήσετε λογισμικό για το Linux? Χρησιμοποιώντας τα ολοκληρωμένα εργαλεία εγκατάσταση ή από sourcecode.

Κανονικά, θα εγκαταστήσει στο εσωτερικό, με κάτι όπως το aptitude το πρόγραμμα εγκατάστασης του Linux », αλλά επειδή αυτό είναι ένα πολύ σημαντικό στοιχείο του VPS μας, εγώ πρόκειται να σας παρουσιάσω τον τρόπο εγκατάστασης από την πηγή. Η μέθοδος αυτή διαρκεί λίγο περισσότερο, αλλά αξίζει τον κόπο, διότι θα έχουμε μια πολύ πιο up-to-έκδοση.

.. Με έναν web server, δεν θα πρέπει να κοπεί γωνίες. Αυτό θα ήταν σαν να αγοράζει μια κίτρινη Ferrari.

Για πρώτη φορά, χρειαζόμαστε κάποια αρχεία εξάρτηση: --

sudo aptitude -y install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

And to create a directory in which to store the Nginx package:-

mkdir ~/sources

Change to that directory:-

cd ~/sources/

Now we get the latest stable Nginx release, nginx-0.7.62 *.

* As of September 2009, edited by the_guv. You should still check it is still the latest, here , and ammend the filename accordingly:-

wget http://sysoev.ru/nginx/nginx-0.7.62.tar.gz

Unzip it:-

tar -zxvf nginx-0.7.62.tar.gz

Go into the new unzipped folder:-

cd nginx-0.7.62

Installing and Testing Nginx

Compile with two options; where to install it, and including 'ssl' (to enable 'https' for secure connections, ie shopping and stuff):-

./configure --sbin-path=/usr/local/sbin --with-http_ssl_module

Install this baby:-

make
sudo make install

Kick it up:-

sudo /usr/local/sbin/nginx

And test it by popping your IP address in a web browser. You should see "Welcome to nginx!"

Now stop it:-

sudo kill `cat /usr/local/nginx/logs/nginx.pid`

Have Nginx Start, Restart or Stop When Required

This is important, for example, upon reboot. We need a script for this. Create a file:-

sudo nano /etc/init.d/nginx

And paste this within:-

#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;

  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

Then give the file permissions and make the script run on reboot, else start/stop/restart when required:-

sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

nginx.conf - Configuring Nginx

Now open the Nginx configuration file:-

sudo nano /usr/local/nginx/conf/nginx.conf

...and strip out all the content, delete the lot. CTRL-K is the easy way to do that, if you were wondering.

And replace with this:-

user www-data www-data;
worker_processes  4;

events {
    worker_connections  1024;
}

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

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     off;
    keepalive_timeout  5;

    gzip  on;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_types      text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /usr/local/nginx/sites-enabled/*;
}

Creating the Virtual Host File Structure & Symlinks

The Nginx file structure is pretty messy for multiple sites, so we'll sort that.

First, layout some new folders:-

sudo mkdir /usr/local/nginx/sites-available
sudo mkdir /usr/local/nginx/sites-enabled

...the first is for our virtual host (vhost) files, the second for their corresponding symlinks which will be referenced by Nginx' config file.

What are vhosts & symlinks?

You have one of each per domain, and one of each for the default settings.

The symlink, or symbolic link, references the web server to the virtual host file.

The vhost file is a configuration file. It tells the web server, for example, things like where the web files live or the kind of URI structure you want.

For now, we need a default vhost file, and that goes in the sites-available folder. So:-

sudo nano /usr/local/nginx/sites-available/default

Now paste this:-

server  {
            listen       80;
            server_name  localhost;
            
            location /  {
                    root   html;
                    index  index.php index.html index.htm;
       			   }
                       
            # redirect server error pages to the static page /50x.html
            error_page   500 502 503 504  /50x.html;
            location = /50x.html 
            		   {
            			root   html;
            		   }
		}

And enable it with this symlink:-

sudo ln -s /usr/local/nginx/sites-available/default /usr/local/nginx/sites-enabled/default

Boot it up again:-

sudo /etc/init.d/nginx start

...and check for that "Welcome..." page again, using your IP in a web browser.

Splendid. All pretty. And pretty well organised.

Moving Along

So that's Nginx up and running.

In Part 12 of this series Set Up an Unmanaged VPS (4 Newbies) I'm taking a quick detour, setting up FileZilla so we've got a Secure FTP (SFTP) connection. That'll be handy to help demonstrate Part 13, when we create another folder structure, this time for our sites and blogs, and pop up a couple of test pages.

Then, in Part 13, I'll show you how to use Subversion to more easily install and upgrade platforms and their modules/plugins. I'll example the popular WordPress scenario - and while we're about it we'll sort out WordPress caching and friendly-URLs.

And then, this, that, the other. Cue index ..


SETUP an Unmanaged VPS (4 Newbies) .. The V-P-S Bible

Serve multi sites & blogs on a budget .. at the fastest possible speed .. with the least downtime .. in the most secure environment .. and future-proofed for easy admin.

That's what the VPS Bible is about, stepped out in simple copy & paste guides.

From high traffic WordPress blogs to startup web hosts, here's what you need.

Set it up?   Click here for the 21 part follow-up .. V-P-S Admin

.