Designing enterprise drupal
Download
1 / 15

Designing Enterprise Drupal - PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on

Designing Enterprise Drupal. Environments. How to scale Drupal server infrastructure. Jason Burnett ( [email protected] ) NeoSpire Director of Network Services Ben Chavet ( [email protected] ) NeoSpire Senior Engineer Brian Skowron ( [email protected] )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Designing Enterprise Drupal' - malik-hardin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Designing enterprise drupal

Designing Enterprise Drupal

Environments

How to scale Drupal server infrastructure


Introductions

Jason Burnett ([email protected])

NeoSpire Director of Network Services

Ben Chavet ([email protected])

NeoSpire Senior Engineer

Brian Skowron ([email protected])

NeoSpire Account Executive

Introductions


So first thing s first
So…first thing’s first

  • Prerequisites that you’ll need (or at least want).

    • A good, reliable network with plenty of capacity

    • At least one expertSystems Administrator

  • You don’t necessarily need this:


But you don t want this
But you don’t want this:

(hopefully this isn’t you)


After you ve fired that guy
After you’ve fired that guy,

let’s talk stacks

Default Stack

Performance Stack


First don t use drupal well sorta
First, don’t use Drupal (well, sorta)

  • Drop-in replacement for Drupal 6.x

  • Support for database replication

  • Support for reverse proxy caching

  • Optimization for MySQL

  • Optimization for PHP 5

  • Available at: http://fourkitchens.com/pressflow-makes-drupal-scale


After pressflow it s all about cache
After Pressflow, it’s all about Cache

  • Varnish is a reverse proxy cache

  • Caches content based on HTTP headers

  • Uses kernel-based virtual memory

  • Watch out for cookies, authenticated users

  • Available at

  • http://varnish-cache.org/


Http pipeline
HTTP Pipeline

Apache Configuration

Varnish Configuration

NameVirtualHost *:8080

Listen 8080

<VirtualHost *:8080>

[…]

</VirtualHost>

backend default {

.host = "127.0.0.1";

.port = "8080";

}


Http logging
HTTP Logging

VarnishNCSA daemon handles logging

Default Apache logs will always show 127.0.0.1

Define a new log format to use X-Forwarded-For

LogFormat"%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy

CustomLog/var/log/apache2/access.log combined_proxy


Caching with cookies
Caching with Cookies

sub vcl_recv {

// Remove has_js and Google Analytics __* cookies.

set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|has_js)=[^;]*", "");

// Remove a ";" prefix, if present.

set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");

// Remove empty cookies.

if (req.http.Cookie ~ "^\s*$") {

unset req.http.Cookie;

}

}

sub vcl_hash {

// Include cookie in cache hash

if (req.http.Cookie) {

set req.hash += req.http.Cookie;

}

}


Basic security
Basic Security

// Define the internal network subnets

acl internal {

"127.0.0.0"/8;

"10.0.0.0"/8;

}

sub vcl_recv {

[…]

// Do not allow outside access to cron.php

if (req.url ~ "^/cron\.php(\?.*)?$" && !client.ip ~ internal) {

set req.url = "/404-cron.php";

}

}


Varnish is super fast
Varnish is super-fast

/etc/security/limits.conf

Able to handle many more connections than Apache

Needs a large number of file handles

* soft nofile 131072

* hard nofile 131072


Apache optimizations
Apache Optimizations

  • Tune apache to match your hardware

  • Setting MaxClients too high is asking for trouble

  • Every application is different

  • A good starting point is total amount of memory allocated to Apache divided by 40MB

  • One of the areas that will need to be monitored and updated on an ongoing basis


Still all about cache
Still all about Cache

  • APC Opcode Cache

  • APC is an Opcode cache

  • Officially supported by PHP

  • Prevents unnecessary PHP parsing and compiling

  • Reduces load on Memory and CPU


Allocate enough memory
allocate enough memory

FOR APC

extension=apc.so

apc.shm_size=120

apc.ttl=300

Php.ini

Sysctl.conf

kernel.shmmax=134217728


ad