Eric Maicon

Configure seu VPS Parte 4 - Instalando o NGINX

Em 17/01/2012

Tags: Nginx, Debian, VPS, PHP, FPM

Continuando os posts sobre como configurar um VPS, vamos instalar o NGINX.

http://ericmaicon.com.br/blog/3/configure-seu-vps-parte-1-instalando-o-postgres

http://ericmaicon.com.br/blog/4/configure-seu-vps-parte-2-instalando-o-mysql

http://ericmaicon.com.br/blog/5/configure-seu-vps-parte-3-instalando-o-php


Para baixar o fonte do NGINX, basta ir no seguinte link:

http://nginx.org/en/download.html


Acessando a pasta de source:

cd /usr/src


Baixando, descompactando e acessando a pasta:

wget http://nginx.org/download/nginx-1.1.6.tar.gz
tar -zxf nginx-1.1.6.tar.gz
cd nginx-1.1.6


Rodando o configure:

./configure --with-http_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module

Significado das opções acima:

--with-http_ssl_module = Com o Módulo SSL

--without-mail_pop3_module = Sem o módulo MAIL

--without-mail_imap_module = Sem o módulo IMAP

--without-mail_smtp_module = Sem o módulo SMTP

--with-http_stub_status_module = Módulo de captura de status do nginx (mais em http://wiki.nginx.org/HttpStubStatusModule).


Rodando o make e o make install:

make && make install


Criando o arquivo de configuração do NGINX, já preparado para utilizar com o FPM e PRINCIPALMENTE COM O YII Framework!!

vim /usr/local/nginx/nginx.conf

worker_processes  1;

error_log  logs/error.log;

events {
    use epoll;
    multi_accept on;
    worker_connections  1024;

    }

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

    error_log /var/log/nginx/error.log;

    sendfile        on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 3;
    server_tokens off;
    access_log off;
    client_max_body_size 32m;
    client_body_timeout 60;
    client_header_timeout 60;
    send_timeout 60;
    reset_timedout_connection on;

    gzip on;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 9;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    server {
            server_name  localhost;
            root   /var/www;
            index  index.php index.html index.htm;
 
            location / {
                    try_files $uri $uri/ /index.php;
            }

             location  $document_root/protected/ {
                deny  all;
            }
 
            location  ~* \.(gif|jp(|e)g|png|mp(|e)g|avi|flv|swf)$ {
                expires   30d;
        }

            location ~ \.php {     
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
            fastcgi_intercept_errors on;
            fastcgi_ignore_client_abort off;
            fastcgi_connect_timeout 60;
            fastcgi_send_timeout 360;
            fastcgi_read_timeout 360;
            fastcgi_buffer_size 128k;
            fastcgi_buffers 8 256k;
            fastcgi_busy_buffers_size 256k;
            fastcgi_temp_file_write_size 256k;
   
        }
    }
}


Criando o arquivo para iniciar o servidor:

vim /etc/init.d/nginx

#! /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/nginx/sbin/nginx
NAME=nginx
DESC=nginx
pid=/var/lock/subsys/nginx

test -x $DAEMON || exit 0

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

set -e

. /lib/lsb/init-functions

case "$1" in
  start)
    echo -n "Starting $DESC: "
    start-stop-daemon --start --quiet --pidfile $pid \
        --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    kill `ps -A|awk '/nginx/{print $1}'`
    echo "$NAME."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: "
    stop
    start
    echo "$NAME."
    ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      stop
      start
      echo "$NAME."
      ;;
  status)
      status_of_proc -p $pid "$DAEMON" nginx && exit 0 || exit $?
      ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
    exit 1
    ;;
esac

exit 0


Setando a permissão e iniciando o servidor:

chmod +x /etc/init.d/nginx

/etc/init.d/nginx start


No próximo artigo veremos como instalar o Varnish Cache!

Espaço Tempo

http://www.espacotempo.com.br

Site Institucional para uma Empresa relacionada a Arquitetura. Site totalmente dinâmico, possibilitando desde a alteração da logo quanto os ícones do rodapé.


Batera e Cia

http://www.bateraecia.com

Site em formato de e-commerce com integração com o Pagseguro e a Redecard. Feito com o Framework YII, utilizando SSL e banco de dados MySQL.


Premium Megaupload

http://www.premiummegaupload.com.br

Site desenvolvido em PHP com ferramenta interna em Adobe Flex. Site com mais de 30mil usuários.


Twitter

@eric_maicon: Eu sigo o @EventosVasco e tenho certeza que 2012 será o #AnodoVasco – http://t.co/jwWjTnyk

@eric_maicon: *dispara algum evento!

@eric_maicon: @maujor Existe algum evento jquery que dispara quando trocamos o valor de um campo? obrigado!

@eric_maicon: Alguém sabe se o jquery escuta algum evento quando trocamos o valor de um campo? #jquery