Ottimizzare Drupal su IIS 7.5



Documenti analoghi
Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Come portare la vostra intranet su IBM i con Drupal e Zend Server

Overview su Online Certificate Status Protocol (OCSP)

Configurazione manuale di ASM in IIS 7

Guida all Installazione del ProxyFatturaPA

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

2.1 Installazione e configurazione LMS [4]

Application Server per sviluppare applicazioni Java Enterprise

GovPay 2.0. Manuale Installazione


19. LA PROGRAMMAZIONE LATO SERVER

INFN Security Workshop Firenze Settembre IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn.

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Improve your management productivity

ARCHIVIA PLUS - DOCPORTAL

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco

Come installare e configurare il software FileZilla

MEGA Advisor Architecture Overview MEGA 2009 SP5

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

Installazione e caratteristiche generali 1

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

File Server Resource Manager (FSRM)

Guida all amministrazione VPH Webmin/Virtualmin

System Center Virtual Machine Manager Library Management

Protocolli e architetture per WIS

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Indice. Indice V. Introduzione... XI

Introduzione alle applicazioni di rete

crazybrain snc Presentazione_VisualFTP.pdf Pag. 1 VisualFTP Presentazione del prodotto Web partner:

ARCHIVIA PLUS VERSIONE SQL SERVER

Corso di PHP. Prerequisiti. 1 - Introduzione

Online Help StruxureWare Data Center Expert

System Center Virtual Machine Manager Self-Service Portal

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di OutLook

Mac Application Manager 1.3 (SOLO PER TIGER)

Prerequisiti di Mago.Net 3.

Caratteristiche di una LAN

Bibliografia: Utenti e sessioni

MagiCum S.r.l. Progetto Inno-School

Gruppi, Condivisioni e Permessi. Orazio Battaglia

App-V Dynamic Suite Composition

Biotrends - Istruzioni per il Setup

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

Sistema di Gestione dei Contenuti Multimediali

2009. STR S.p.A. u.s. Tutti i diritti riservati

Manuale d installazione C2Web Gestione studio

COME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL

e/fiscali - Rel e/fiscali Installazione

SYSTEM MANUAL SM_0038 ESEMPI INTEGRAZIONE PRODOTTI. Database Connection Service con ETG30xx su LAN Locale verso un Server MySQL

NOTE TECNICHE DI CONFIGURAZIONE. Giugno 2009

Caratteristiche principali. Contesti di utilizzo

Apache e Mysql cluster

Configurazione avanzata di XAMPP

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2

come installare wordpress:

DBMS e Linguaggi di programmazione nell'era di Internet

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

REQUISITI TECNICI HR INFINITY ZUCCHETTI

Microsoft Application Virtualization APP-V Streaming over HTTPS. di Nicola Ferrini

Guida all installazione di SWC701DataWebAccess (.net 2.0)

F.A.Q. PROCEDURA SICEANT PER LE COMUNICAZIONI ANTIMAFIA (EX ART 87)

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

OwnCloud Guida all installazione e all uso

Installazione di GFI WebMonitor

NOVITÀ SITI COMMERCIALISTA

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Teleassistenza mediante PCHelpware

Realizzazione del nuovo cruscotto direzionale per il monitoraggio della gestione aziendale

ELEMENTI DI PROGETTAZIONE SOFTWARE

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon RDS

Programmazione server-side: Java Servlet

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Access. P a r t e p r i m a

Il web server Apache Lezione n. 3. Introduzione

Introduzione a Windows XP Professional Installazione di Windows XP Professional Configurazione e gestione di account utente

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

PHI-RE. Configurazione infrastrutturale SOA. Version 1.0 Marzo, Page 1 of 17

ISTRUZIONI INSTALLAZIONE PMANGO

Web Programming Specifiche dei progetti

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

22 Ottobre #CloudConferenceItalia

Progettazione Web Applicazioni client-server

Sito web parrocchiale: STRUMENTI E PROGRAMMI

maildocpro Manuale Installazione

Sommario. Oggetto: Istruzioni configurazione client VPN per piattaforma Mac OSX Data: 25/01/2016 Versione: 1.0

Studi di Settore. Nota Operativa 22/4/2013

lem logic enterprise manager

Introduzione ad Active Directory. Orazio Battaglia

Interfaccia FAX BREVE GUIDA

Maschere di sottorete a lunghezza variabile

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Guida all installazione di Easy

Il Web Server e il protocollo HTTP

DINAMIC: gestione assistenza tecnica

Transcript:

Alessandro Pilotti MVP ASP.Net / IIS Microsoft Certified Professional & Trainer MCSD, MCAD, MCSE, MCDBA, MCTS, MCT RHCE - Red Hat Certified Engineer http://blogs.ugidotnet.org/soaringcode Ottimizzare Drupal su IIS 7.5

Agenda IIS e PHP Windows Cache Extension for PHP Scalabilità e performance Application Request Routing 2.5 Web Farm Framework 2.1 Setup Drupal web site su web farm host Setup Drupal ARR / WFF Database e shared storage Distributed session management AppFabric distributed cache

IIS loves PHP In IIS 7.x è una piattaforma ottimizzata per PHP FastCGI (disponibile anche per IIS 6) Non più ISAPI! PHP Manager integrato in IIS Manager Semplice gestione di versioni PHP e impostazioni PHP.ini Windows Cache Extension for PHP Opcode cache File cache User cache Relative file path cache Session handler Deployment di applicazioni semplificato via Web PI Wordpress, Joomla, Drupal, etc

Versioning IIS 5.0 Windows 2000 IIS 5.1 Windows XP IIS 6.0 Windows Server 2003 IIS 7.0 Windows Vista / Server 2008 IIS 7.5 Window 7 / Server 2008 R2 IIS 8.0 Windows 8 / Windows Server vnext

FastCGI Protocollo molto popolare in ambito Apache, su cui si basano PHP, Perl, Ruby, etc CGI è lento: ogni request instanzia un processo! FastCGI riutilizza lo stesso processo E supportato su IIS 7.x e su IIS 6.0 (quest ultimo via fcgiext.dll ISAPI) Scritto in collaborazione con Zend (I creatori di PHP) ma è generico Basta abilitare CGI tra I role services in IIS 7.x Nota: Installare Hotfix KB980363 su IIS 7.0 per avere 1.5!

FastCGI Deployment

PHP - Performance PHP è un linguaggio compilato a runtime Esecuzione legge file e genera bytecode Successive richieste ripetono il processo Non è un problema per piccoli siti Collo di bottiglia prestazionale Esistono diverse soluzioni Al momento (PHP 5.x) nessuna nativa

PHP Accelerators Con questo termine si intendono strumenti in grado di velocizzare l esecuzione Tra i più noti APC (inserito di default in PHP 6.0) eaccelerator Zend Server Windows Cache Extension for PHP

WinCache for PHP Soluzione Open Source sviluppata da MS Specifica per IIS Richiede PHP 5.2 o PHP 5.3 x86 Versione Non Thread Safe Offre feature non incluse in APC e altri acceleratori

WinCache for PHP Installabile Via Web Platform Installer Via download diretto Compilandolo dai sorgenti Configurare php.ini per attivare extension = php_wincache.dll Verificare con phpinfo() Modificare eventuali parametri in php.ini

WinCache for PHP PHP Bytecode Cache Chiamate successive ad uno script reimpiegano il bytecode già compilato Caricamento script PHP in memoria I/O Ridotto, soprattutto UNC! Cache gestita tramite Shared Memory Cache dei path assoluti Riduce I tempi per le frequenti risoluzioni dei path relativi Session handler con utilizzo di cache Di default utilizza file system

WinCache for PHP User cache wincache_ucache_set(key, value) wincache_ucache_get(key) Etc Sessioni in User Cache session.save_handler = wincache

Scalabilità e performance Un applicazione è definita scalabile se può raggiungere un livello di carico arbitrario Aumentando banalmente l hardware utilizzato Esempi di mancata scalabilità Eccessiva dipendenza dalle sessioni Consumo esagerato di memoria per request Nel mondo web, si risolve con una web farm Più di un server risponde alle request di un sito web Necessità di condividere informazioni tra i server Database Storage Sessioni Cache Load balancing per distribuire le request (ARR)

IIS 7.x - Scalabilità IIS 7.x offre un ottima scelta di strumenti per la gestione di una Web Farm Application Request Routing Web Farm Framework Windows AppFabric Gestione dei worker process (web garden) Per FastCGI, allocazione dinamica del numero dei processi in base al carico ed alle risorse disponibili

IIS Web Farm

IIS Web Farm Uno o più server da utilizzare come load balancer e cache Windows Server 2008 R2 IIS Application Request Routing Web Farm Framework Uno o più server da usare come nodi della farm Windows Server 2008 R2 IIS Opzionalmente Windows AppFabric Database Server MySQL 5.x (Drupal 6,7) MS SQL Server (Drupal 7) File Server Windows Server

Installazione di MySQL Installazione di MySQL 5.x su un nodo dedicato Nel nostro esempio il DBMS server fungerà anche da file server Installazione eseguita via Web PI Può essere effettuata anche manualmente Se si desidera configurare manualmente un db per Drupal: CREATE DATABASE MyNewDrupalSite; CREATE USER 'MyNewDrupalSite'@'%' IDENTIFIED BY 'Passw0rd'; -- Cambiare passowrd ovviamente GRANT ALL On MyNewDrupalSite.* TO 'MyNewDrupalSite'@'%';

Deployment di Drupal Installazione solo sul primo nodo della farm! Prerequisiti Ruolo IIS con CGI abilitato (FastCGI incluso) URL Rewrite Sostituisce mod_rewrite di Apache Output Cache PHP 5.2 PHP Manager for IIS Windows Cache Extension for PHP 5.2 Installazione eseguita via Web PI Può essere eseguita manualmente in alternativa Deployment di un web site Drupal manualmente Creare web site in IIS Modificare settings.php se necessario

IIS prerequisiti per Web Farm Framework I seguenti step sono da eseguire sui nodi della farm Installare Web Deploy 2 Eccezioni Windows Firewall Core networking File And Printer Sharing Remote Administration Creare un utente amministratore su tutti i nodi Può essere un utente di dominio In alternativa deve avere la stessa password su tutti i nodi della farm Autenticazione passthrough Disabilitare UAC Attenzione a mischiare ambienti x86 e x64! http://learn.iis.net/page.aspx/913/system-and-platform-requirements-for-the-web-farm-fram

Demo Deployment Drupal e configurazione per WFF

Installazione ARR e WFF Con Web PI

Configurazione di una Farm

Deployment di una Farm Impostare Provision web farm Server farm is available from load balancing Credenziali utente amministratore creato in precedenza sui nodi Aggiungere il server primario Server su cui abbiamo installato Drupal Impostare come primary server Aggiungere i server secondari WFF si occuperà tramite Web Deploy di sincronizzare i server secondari a partire dal primario

Deployment di una Farm

Health test Una web farm offre funzionalità di fault tolerance grazie all intrinseca ridondanza ARR deve sapere come identificare I nodi attivi Un health test consiste tipicamente in una request HTTP Valutando il codice di risposta, ad es.: 200-300 => Ok Valutando il contenuto della risposta per test più approfonditi Una soluzione frequentemente adottata consiste in una pagina di test al cui interno vengo eseguiti test di connessione DBMS File system Web Service etc

Load balancing in ARR All arrivo di una request, ARR deve decidere a quale nodo della farm inoltrarla Ci sono diversi algoritmi L idea di base è uniformare il carico sui nodi Non tutte le request sono uguali

Client Affinity Le applicazioni web tipicamente usano sessioni per mantenere lo stato tra due request distinte eseguite dallo stesso client In una farm, server diversi rispondono alla stesso client Soluzioni Dati di sessione mantenuti serializzati su un server comune MySQL SQL Server Etc ARR inoltra le richieste di un client sempre allo stesso server (client affinity) Gestito tramite un cookie Attenzione a: Sbilanciamento nel carico Limitazioni nella fault tolerance

Server Affinity Client affinity settings Host affinity Bilanciamento del carico tra server della farm Basato sull host header della request Utile in caso di shared storage

Provisioning

Demo Configurazione ARR e creazione farm

File server Applicazioni web spesso necessitano di accedere ad uno storage condiviso Ad es. documenti caricati dagli utenti In una server farm si hanno 2 soluzioni Area comune condivisa attenzione ai bottleneck e alla fault tolerance Soluzione di replicazione DFS, Web Deploy, rsync, etc Attenzione alla latenza! Nel nostro esempio optiamo per una share SMB

Configurazione Application pool Su tutti i nodi della farm e sul file server Creare un utente con privilegi minimi drupalwp In alternativa può essere un utente di dominio In alternativa mantenere password omogenea sui nodi! Associare tale utente all application pool assegnato al sito Drupal Sufficiente sul primary server, web deploy si occuperà del sync Verificare impostazioni fastcgi.impersonate in PHP.ini

Configurazione share SMB Sul File Server Creazione directory C:\Data\MyNewDrupalSite Assegnare ACL in modalità RW all utente drupalwp Condividere la directory Assegnare permessi RW all utente drupalwp Per Drupal, all interno della directory creare: Files Temp

Configurazione share su Drupal 6 Drupal richiede una piccola modifica ai sorgenti (1 riga!) per accedere correttamente ad una share SMB File: includes/file.inc Function: file_check_directory Orginal: if (!is_writable($directory)) { Modified: if (!touch($directory)) {

Demo Configurazione shared storage

Windows AppFabric Cache Nel mondo PHP l uso di cache distribuite come memcache/memcached è molto diffuso Windows AppFabric offre soluzioni di cache nel mondo MS API solo.net Integrazione con PHP e Drupal: http://drupal.org/sandbox/alexpilotti/1209704 Sviluppato in collaborazione con BlueParabola (publisher di php architect) L ntegrazione avviene tramite un apposito modulo Drupal in PHP e un wrapper COM sulle API.Net di AppFabric

Q & A