Instalar debian 6 atualizado. Executar a sequencia abaixo echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list echo deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.list wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg apt-key add - apt-get update apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php5-pgsql php5-apc php5-cgi php5-curl php5-imap php5-ldap curl nginx curl http://repo.varnish-cache.org/debian/gpg-key.txt apt-key add - echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-3.0" >> /etc/apt/sources.list.d/varnish.list apt-get update apt-get install varnish Edita o www.conf do php-fpm vim /etc/php5/fpm/pool.d/www.conf definir no arquivo do php-fpm os valores abaixo. listen.owner = www-data listen = /var/run/php5-fpm.sock Configurar o nginx no site-enable default server { listen 8080; #listen [::]:80 default ipv6only=on; ## listen for ipv6 index index.php index.html index.htm; server_name expresso.prodeb.ba.gov.br; charset utf-8; location / { index index index.php; try_files $uri/ $uri /index.php?q=$uri&&$args; port_in_redirect off; location ~* ^.+.(jpg jpeg gif css png js ico xml)$ { access_log off; log_not_found off; expires max; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # fastcgi_pass php; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/expresso/$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; location ~ /.htaccess { deny all; log_not_found off; access_log off; location ~ /.htpasswd { deny all; log_not_found off; access_log off; location = /favicon.ico { allow all; log_not_found off; access_log off; location = /robots.txt { allow all; log_not_found off; access_log off; Configurar o php.ini para ter o suporte a apc e liberar os short-tag vim /etc/php5/fpm/php.ini default_charset = "iso-8859-1" date.timezone = America/Sao_Paulo short_open_tag = On ;;;;; [APC] extension=apc.so apc.enabled = 1 apc.cache_by_default = 1 apc.stat = 1 apc.shm_segments = 1 apc.shm_size = 64 apc.write_lock = 1 apc.slam_defense = 0 apc.ttl = 7200 apc.user_ttl = 7200
Configura o varnish vim /etc/default/varnish DAEMON_OPTS="-a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -p thread_pool_add_delay=2 -p thread_pools=4 -p thread_pool_min=200 -p thread_pool_max=4000 -p cli_timeout=25 -p session_linger=100 -s malloc,512m" vim /etc/varnish/default.vcl backend default {.host = "127.0.0.1";.port = "8080";.first_byte_timeout = 300s; acl purge { # Only localhost can purge my cache "127.0.0.1"; "localhost"; sub vcl_recv { if ((req.http.host ~ "(ubuntubrsc.com)")) { set req.backend = default; else { if (!client.ip ~ purge) { error 405 "This IP is not allowed to send PURGE requests."; return (lookup); if (req.request == "POST") { if (req.url ~ "/feed") { if (req.url ~ "/wp-(login admin)") { set req.http.cookie = regsuball(req.http.cookie, "has_js=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, " utm.=[^;]+(; )?", ""); set req.http.cookie = regsuball(req.http.cookie, " qc.=[^;]+(; )?", ""); set req.http.cookie = regsuball(req.http.cookie, "wp-settings-1=[^;]+(; )?", ""); set req.http.cookie = regsuball(req.http.cookie, "wp-settings-1=[^;]+(; )?", ""); set req.http.cookie = regsuball(req.http.cookie, "wp-settings-time-1=[^;]+(; )?", ""); set req.http.cookie = regsuball(req.http.cookie, "wordpress_test_cookie=[^;]+(; )?", ""); if (req.http.cookie ~ "^ *$") { if (req.url ~ ".(css js png gif jp(e)?g swf ico ttf otf)") { if (req.http.accept-encoding) { if (req.url ~ ".(jpg png gif gz tgz bz2 tbz mp3 ogg)$") { remove req.http.accept-encoding; elsif (req.http.accept-encoding ~ "gzip") { set req.http.accept-encoding = "gzip"; elsif (req.http.accept-encoding ~ "deflate") { set req.http.accept-encoding = "deflate"; else { remove req.http.accept-encoding; if (!req.http.cookie) { if (req.http.authorization req.http.cookie) { return (lookup); sub vcl_pipe { return (pipe); sub vcl_pass { sub vcl_hash { hash_data(req.url); if (req.http.host) { hash_data(req.http.host); else { hash_data(server.ip); if (req.http.accept-encoding) { hash_data(req.http.accept-encoding); return (hash); sub vcl_hit {
purge; error 200 "Purged."; sub vcl_miss { purge; error 200 "Purged."; return (fetch); sub vcl_fetch { if (req.url ~ ".(css js png gif jp(e)?g swf ico ttf otf)") { unset beresp.http.cookie; set beresp.ttl = 1800s; sub vcl_deliver { if (obj.hits > 0) { set resp.http.x-cache = "cached"; else { set resp.http.x-cache = "uncached"; unset resp.http.x-powered-by; unset resp.http.server; sub vcl_init { return (ok); sub vcl_fini { return (ok); VCL default backend default {.host = "127.0.0.1";.port = "8080"; /etc/init.d/php5-fpm restart /etc/init.d/nginx restart /etc/init.d/varnish restart