.

Installez nginx (mieux que Apache ou Lighttpd) - VPS Bible Pt 11

English Anglais (changer)
  • Digg
  • Twitter
  • Technorati
  • del.icio.us
  • Facebook
  • MySpace
  • Reddit
  • StumbleUpon
  • LinkedIn
  • email

Set Up VPS Unmanaged (4 Newbies) - Partie 11: Nginx (mieux que Apache) Serveur Web

Installez Nginx - logo Nginx

Installation et configuration de serveur web Nginx, ajuster la structure de fichier par défaut, puis en définissant un fichier vhost avec lien symbolique est l'objet de ce copier / coller how-to. Donc ouvrir que CLI et je vais vous expliquer.

Donc, nous sommes prêts à installer une attraction vedette, Nginx (prononcé "moteur-x"). Mais pourquoi? Apache n'est pas le meilleur serveur web?

Apache m'a bien servi pendant des années, à la fois localement et sur des hôtes distants, et est toujours un choix souhaitable pour de nombreux sites importants.

Mais, un peu comme Ubuntu, Firefox et jQuery, il ya un petit nouveau en ville, et il est plus légère, plus simple à configurer et à utiliser, rapide à servir. Entrez le serveur web Nginx.

Configuration d'un VPS Unmanaged (4 Newbies) .. Le VPS Bible

En 20 un copier / coller des mesures .. de zéro à héros, case vide de cute-en tant que serveur Linux.

Faites défiler la liste pour l'indice de la série complète.

So, hey, remise partagé & viva virtuel! Hope it helps. The_guv

Vidéo: Installer et configurer le serveur Web Nginx

Regarder le, euh, guvideo pour une meilleure idée de comment faire cela.

Départ chaîne YouTube the_guv à http://youtube.com/guvnrDOTcom

... ou si vous ne pouvez pas être ennuyé avec ça, ou même si vous le pouvez, voici le détail ...

Pourquoi choisir Nginx? Pourquoi ne pas Apache ou Lighttpd?

Je ne prétends pas être un expert, juste quelqu'un qui a fait des recherches ultra-fond. Je me suis concentré principalement sur les deux plus populaires, les mieux établies serveurs Web, Apache et Lighttpd, et l'alternative jeune Turc, Nginx, sur laquelle est geekdom tous aflutter. Voici un résumé de mes principales conclusions: --

  • Apache est bloatware, le chargement des modules inutilisés qui gaspillage des ressources
  • Lighttpd RAM fuites mal
  • Nginx repères le plus rapide, en utilisant le moins de ressources

Je me sers de cette lumière-server poids pour ma ressource-blog lourds WordPress, guvnr.com, et je suis impressionné par ses performances solides. Aussi important encore, il n'a pas ce type Windows tendance, une affliction Apache aussi, de gaspiller des ressources en lançant un bouquet de services que je n'arrive pas besoin.

Ne prenez pas ma parole. Vous ne devriez pas, car je n'ai pas effectué de tests d'évaluation. Quelque chose de Google tels que Apache vs Nginx "ou Nginx vs Lighttpd et avoir une lecture. Et voici le Nginx wiki.

Obtention de la dernière version Nginx

Il ya deux manières d'installer un logiciel sur Linux, en utilisant les outils d'installation intégrée ou à partir de code source.

Normalement, on installe à l'interne, en utilisant quelque chose comme aptitude à l'installateur Linux ', mais parce que c'est une composante importante de notre VPS, je vais vous montrer comment installer à partir de la source. Cette méthode prend un peu plus long, mais ça vaut le coup parce que nous aurons un bien plus up-to-version actualisée.

.. Grâce à un serveur Web, nous ne devons pas couper les coins ronds. Ce serait comme acheter une Ferrari jaune.

La première fois, nous avons besoin de fichiers de dépendance: --

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

  1. * Includes video tutorial.

  2. Not linked = not published. Won't be long. Fix a feed for updates.


If you liked that ...
  • Set Up Unmanaged VPS (4 Newbies) - Part 13: Serve Multiple Sites & Blogs with Virtual Hosts

    Now to add sites & blogs to our powerful web server, using vhost (virtual host) files and symlinks. We'll create a site file structure, add users with groups & permissions, tweak Nginx with FastCGI [...]
  • Set Up Unmanaged VPS (4 Newbies) - Part 10: Prepare Linux Server for Email with Postfix

    In this tutorial we'll configure an email function for the VPS. That's not to turn this Linux system into a mail server .. but to allow our web apps to be able to send and automate outgoing email. If you recall [...]
  • Set Up Unmanaged VPS (4 Newbies) - Part 14: Tweak Nginx for WordPress - Pretty URLs & WP Super Cache

    For the blog platform WordPress to work properly with Nginx we need to tweak the web server configuration. This tutorial will enable both caching - integrating the WP Super Cache plugin - and activate pretty [...]
  • Maintain Unmanaged VPS - Part 5: Get phpMyAdmin Working with Nginx

    How to install PMA with Nginx, to administer multiple MySQL dbs from anywhere. View table structure, browse data, run queries, backup and more. Adding phpMyAdmin to the Nginx web server is very like adding a [...]
  • Set Up Unmanaged VPS (4 Newbies) - Part 1: VPS (Virtual Private Server) vs Shared vs Dedicated

    Outgrown shared hosting? Un La première fois, nous avons besoin de fichiers de dépendance: --
    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

    1. * Includes video tutorial.

    2. Not linked = not published. Won't be long. Fix a feed for updates.


    If you liked that ...
    ... maybe you'll like these?

.