SlideShare a Scribd company logo
Boost your website by running
PHP on Nginx
Tips and tricks for high performance websites
Harald Zeitlhofer @HZeitlhofer
harald.zeitlhofer@dynatrace.com
Harald Zeitlhofer
• Technology Strategist at Dynatrace
• Database and Web Development
• Love to discover new things
Tips and tricks for high performance websites
Once upon a time...
performance matters !!!
performance matters !!!
performance matters !!!
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
Modern Web Pages: lots of static content
434 Resources in total on that page:
230 JPEGs, 75 PNGs, 50 GIFs, …
more than 20MB page size
Fifa.com during Worldcup 2014
http://blog.dynatrace.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/
largest item on page:
favicon.ico with 370 KB!!!
but also some heavyweight
CSS and JS files with up to 288 KB!!!
• Expires
• Last-Modified
• Etag
• Cache-Control
cached content
can still create roundtrips
to the network!
Web Request handling
Web Request handling
PHP-FPM
FastCGI Process Manager
Available since 5.3.3
Stable since 5.4.1
PHP-FPM
• Installation
• Pool configuration
/etc/php/7.0/fpm/pool.d/www.conf
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000# for Unix socket: unix:/var/run/php7.0-fpm.sock;
root@hzvm01:/etc/nginx/sites-enabled# ps -ef | grep php
root 6435 1 0 14:39 ? 00:00:32 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
spelix 6439 6435 0 14:39 ? 00:00:00 php-fpm: pool batch
spelix 6440 6435 0 14:39 ? 00:00:00 php-fpm: pool batch
www-data 10576 6435 1 18:45 ? 00:00:48 php-fpm: pool www
www-data 10920 6435 1 18:47 ? 00:00:47 php-fpm: pool www
www-data 10927 6435 1 18:47 ? 00:00:46 php-fpm: pool www
sudo apt-get install php7.0-fpm
Nginx
Lightweight HTTP server
Event based request handling
Open Source project (BSD)
Development started in 2002 by Igor Sysoev to solve the c10k problem
Commercial version NGINX Plus
Leading among
top 100.000 websites
/etc/nginx/nginx.conf
# max_clients = worker_processes * worker_connections
worker_processes 8; # number of CPUs
pcre_jit on; # enable JIT for regex
events {
worker_connections 1024;
multi_accept on;
}
Integration
• Static content served by Nginx
• Dynamic requests sent to PHP
server {
listen 80;
server_name www.yourdomain.com;
root /var/www/test;
index index.php index.html index.htm;
location ~* .(html|js|css|gif|jpg|jpe|jpeg|png|bmp|tif|pdf|ico)$ {
try_files $uri =404;
}
location / {
try_files $uri $uri/ =404;
}
location ~* .php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
Communication via sockets
• TCP vs Unix
• Unix slightly faster when used on localhost
• Use TCP for high load
location ~* .php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
Transaction flow
URL rewrite
...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php
...
http://www.mysite.com/news/browse/2014
 to be processed by index.php
URL rewrite
server {
listen 80;
root /var/www;
index index.php index.html index.htm;
server_name www.mysite.com;
location / {
try_files $uri $uri/ @missing;
}
location @missing {
rewrite (.*) /index.php;
}
location ~ .php$ {
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
http://www.mysite.com/news/browse/2014
 to be processed by index.php
URL rewrite
using Nginx/PHP-FPM there’s a better way:
server {
listen 80;
root /var/www;
index index.php index.html index.htm;
server_name www.mysite.com;
location /images {
try_files $uri =404;
}
location /scripts {
try_files $uri =404;
}
location / {
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
<?php
$params = explode('/', $_SERVER["DOCUMENT_URI"]);
...
Finish Web Request
<?php
do_some_processing();
render_page();
fastcgi_finish_request();
do_slower_stuff(Array(
‘convert_uploaded_videos’,
‘post_to_social_media_platforms’,
‘backup_data’,
‘much more’
));
?>
Nginx and Caching
Nginx FastCGI cache
• Part of Nginx' FastCGI module
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=APPKEY:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
location ~* .php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_cache APPKEY;
fastcgi_cache_valid 200 60m;
}
FastCGI cache in action
<?php
echo time()."n";
?>
FastCGI cache in action
<?php
echo time()."n";
?>
FastCGI cache in action
<?php
echo time()."n";
?>
Full page cache with Memcached
<?php
...
function __construct () {
$this->c = new Memcached();
$this->c->addServer('localhost',11211);
}
function setCache ($key, $content) {
$this->c->set($key, $content);
}
...
// get HTML content
$html = $this->renderPage();
$this->setCache($_SERVER['REQUEST_URI'], $html);
echo $html;
...
?>
Data cache with Memcached
<?php
...
function __construct () {
$this->c = new Memcached();
$this->c->addServer('localhost',11211);
}
function setCache ($key, $content) {
$this->c->set($key, $content);
}
...
// get data structure
$newslist = $this->getNewsList();
$this->setCache('/data/news/getlist', json_encode($newslist));
...
?>
Full page / data cache with Nginx and Memcached
• ngx_http_memcached_module
server {
location / {
set $memcached_key "$uri";
memcached_pass localhost:11211;
error_page 404 502 504 = @notincache;
}
location @notincache {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
PHP, 5k requests, concurrency 100
0
1
2
3
4
5
6
7
8
Apache+PHP Nginx+PHP Nginx+Memcached
<?php
echo "Hello World";
?>
7,28 4,6 3,05
totaltimeinsec
Caching Static Content
• set HTTP response expires header
location ~ .(html|js|css|gif|jpg|jpe|jpeg|png|bmp|tif|pdf|ico)$ {
expires 365d;
access_log off;
error_log off;
log_not_found off;
add_header Cache-Control "public";
try_files $uri =404;
}
Filehandle Caching
• keep handlers for requested static files open
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
FastCGI request forwarding
server {
listen 80;
root /var/www/mysite;
server_name www.mysite.com;
location / {
try_files $uri =405;
}
location ~ .php$ {
fastcgi_pass 192.168.56.12:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
FastCGI request forwarding
upstream php {
server 192.168.56.12:9000;
}
server {
listen 80;
root /var/www/mysite;
server_name www.mysite.com;
location / {
try_files $uri =405;
}
location ~ .php$ {
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi_params;
}
}
Load balancing
upstream php {
ip_hash;
server unix:/var/run/php5-fpm.sock weight=5;
server 192.168.56.12:9000 weight=2;
server 192.168.56.13:9000;
server 192.168.56.14:9000 backup;
}
server {
listen 80;
root /var/www/mysite;
server_name www.mysite.com;
location / {
try_files $uri =405;
}
location ~ .php$ {
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi_params;
}
}
High scalability
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
desktop traffic
response time
slow response time
traffic using chrome
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
My favorite performance tools
• Load Generator (Apache Benchmark, Selenium, JMeter)
• Firebug, Google Developer Tools
• Dynatrace Application Monitoring Free Trial
• Free trial license for 30 days
• Free personal license for developers
• Dynatrace Ruxit
• 2016 free hours for monitoring
http://bit.ly/monitoring-2016
http://bit.ly/dttrial
Further information
http://apmblog.dynatrace.com
http://apmblog.dynatrace.com/2014/08/19/easily-boost-web-application-using-nginx/
http://apmblog.dynatrace.com/2014/10/30/proper-configuration-running-php-nginx/
http://apmblog.dynatrace.com/2015/11/24/cool-new-stuff-on-the-nginx-front/
https://www.nginx.com/resources/wiki/
Harald Zeitlhofer
Performance Advocate
@HZeitlhofer
harald.zeitlhofer@dynatrace.com
http://blog.dynatrace.com
Dynatrace Free Trial
Free Personal License
Ruxit Free Trial
http://bit.ly/monitoring-2016
events@dynatrace.com
Ad

More Related Content

What's hot (18)

Background Tasks in Node - Evan Tahler, TaskRabbit
Background Tasks in Node - Evan Tahler, TaskRabbitBackground Tasks in Node - Evan Tahler, TaskRabbit
Background Tasks in Node - Evan Tahler, TaskRabbit
Redis Labs
 
Caching
CachingCaching
Caching
Nascenia IT
 
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, HerokuPostgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Redis Labs
 
Building Scalable Websites with Perl
Building Scalable Websites with PerlBuilding Scalable Websites with Perl
Building Scalable Websites with Perl
Perrin Harkins
 
Caching basics in PHP
Caching basics in PHPCaching basics in PHP
Caching basics in PHP
Anis Ahmad
 
Big data with hadoop Setup on Ubuntu 12.04
Big data with hadoop Setup on Ubuntu 12.04Big data with hadoop Setup on Ubuntu 12.04
Big data with hadoop Setup on Ubuntu 12.04
Mandakini Kumari
 
04 web optimization
04 web optimization04 web optimization
04 web optimization
Nguyen Duc Phu
 
HBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBaseHBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBase
Michael Stack
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
Perrin Harkins
 
Nginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP TricksNginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP Tricks
Adam Wiggins
 
Using memcache to improve php performance
Using memcache to improve php performanceUsing memcache to improve php performance
Using memcache to improve php performance
Sudar Muthu
 
Query optimization: from 0 to 10 (and up to 5.7)
Query optimization: from 0 to 10 (and up to 5.7)Query optimization: from 0 to 10 (and up to 5.7)
Query optimization: from 0 to 10 (and up to 5.7)
Jaime Crespo
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and Varnish
El Mahdi Benzekri
 
NginX - good practices, tips and advanced techniques
NginX - good practices, tips and advanced techniquesNginX - good practices, tips and advanced techniques
NginX - good practices, tips and advanced techniques
Claudio Borges
 
Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with Nginx
Marian Marinov
 
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
NETWAYS
 
PyGotham 2014 Introduction to Profiling
PyGotham 2014 Introduction to ProfilingPyGotham 2014 Introduction to Profiling
PyGotham 2014 Introduction to Profiling
Perrin Harkins
 
Memcache
MemcacheMemcache
Memcache
Abhinav Singh
 
Background Tasks in Node - Evan Tahler, TaskRabbit
Background Tasks in Node - Evan Tahler, TaskRabbitBackground Tasks in Node - Evan Tahler, TaskRabbit
Background Tasks in Node - Evan Tahler, TaskRabbit
Redis Labs
 
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, HerokuPostgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Postgres & Redis Sitting in a Tree- Rimas Silkaitis, Heroku
Redis Labs
 
Building Scalable Websites with Perl
Building Scalable Websites with PerlBuilding Scalable Websites with Perl
Building Scalable Websites with Perl
Perrin Harkins
 
Caching basics in PHP
Caching basics in PHPCaching basics in PHP
Caching basics in PHP
Anis Ahmad
 
Big data with hadoop Setup on Ubuntu 12.04
Big data with hadoop Setup on Ubuntu 12.04Big data with hadoop Setup on Ubuntu 12.04
Big data with hadoop Setup on Ubuntu 12.04
Mandakini Kumari
 
HBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBaseHBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBase
Michael Stack
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
Perrin Harkins
 
Nginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP TricksNginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP Tricks
Adam Wiggins
 
Using memcache to improve php performance
Using memcache to improve php performanceUsing memcache to improve php performance
Using memcache to improve php performance
Sudar Muthu
 
Query optimization: from 0 to 10 (and up to 5.7)
Query optimization: from 0 to 10 (and up to 5.7)Query optimization: from 0 to 10 (and up to 5.7)
Query optimization: from 0 to 10 (and up to 5.7)
Jaime Crespo
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and Varnish
El Mahdi Benzekri
 
NginX - good practices, tips and advanced techniques
NginX - good practices, tips and advanced techniquesNginX - good practices, tips and advanced techniques
NginX - good practices, tips and advanced techniques
Claudio Borges
 
Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with Nginx
Marian Marinov
 
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
NETWAYS
 
PyGotham 2014 Introduction to Profiling
PyGotham 2014 Introduction to ProfilingPyGotham 2014 Introduction to Profiling
PyGotham 2014 Introduction to Profiling
Perrin Harkins
 

Viewers also liked (20)

FEMTOprint Corporate Brochure
FEMTOprint Corporate BrochureFEMTOprint Corporate Brochure
FEMTOprint Corporate Brochure
Sofia Taufer
 
Performance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious businessPerformance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious business
Harald Zeitlhofer
 
Jardas
JardasJardas
Jardas
Denny Yahya
 
Don’t Lose Your Caffeine Buzz to Cybercrime
Don’t Lose Your Caffeine Buzz to CybercrimeDon’t Lose Your Caffeine Buzz to Cybercrime
Don’t Lose Your Caffeine Buzz to Cybercrime
ThreatMetrix
 
Инвестиционная стратегия (Москва)
Инвестиционная стратегия (Москва)Инвестиционная стратегия (Москва)
Инвестиционная стратегия (Москва)
Anastasia Vinogradova
 
ASEE Metal Impingement paper 50 final
ASEE Metal Impingement paper 50 finalASEE Metal Impingement paper 50 final
ASEE Metal Impingement paper 50 final
André Eggert
 
Assure model day 3
Assure model day 3Assure model day 3
Assure model day 3
sebastiankyle
 
A Review of EnglishCentral (an online video-based material)
A Review of EnglishCentral (an online video-based material) A Review of EnglishCentral (an online video-based material)
A Review of EnglishCentral (an online video-based material)
iumstech
 
자료집 416특별법국민설명회 20140709
자료집 416특별법국민설명회 20140709자료집 416특별법국민설명회 20140709
자료집 416특별법국민설명회 20140709
Soon Il Kwon
 
Procesadores
ProcesadoresProcesadores
Procesadores
SamyMP
 
финансовый рынок _09(1)
финансовый рынок _09(1)финансовый рынок _09(1)
финансовый рынок _09(1)
Anastasia Vinogradova
 
Mendoza
MendozaMendoza
Mendoza
josealfredo1974
 
политех
политехполитех
политех
Bul1t
 
Implications Enclosure and Privatization of the Commons on Women’s Access to ...
Implications Enclosure and Privatization of the Commons on Women’s Access to ...Implications Enclosure and Privatization of the Commons on Women’s Access to ...
Implications Enclosure and Privatization of the Commons on Women’s Access to ...
UNDP in Asia and the Pacific
 
Double looplearning
Double looplearningDouble looplearning
Double looplearning
banupatmi
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rpl
Denny Yahya
 
մեր բնակավայրի հիմնախնդիրները
մեր բնակավայրի հիմնախնդիրներըմեր բնակավայրի հիմնախնդիրները
մեր բնակավայրի հիմնախնդիրները
davidnikoghosyan
 
Html dasar 123
Html dasar 123Html dasar 123
Html dasar 123
Denny Yahya
 
IRM archiveDoc – электронный архив: система электронного хранения документов
IRM archiveDoc – электронный архив: система электронного хранения документов IRM archiveDoc – электронный архив: система электронного хранения документов
IRM archiveDoc – электронный архив: система электронного хранения документов
Группа компаний «Системы и Проекты»
 
Linking State and Non-State Justice Systems in Afghanistan
Linking State and Non-State Justice Systems in Afghanistan Linking State and Non-State Justice Systems in Afghanistan
Linking State and Non-State Justice Systems in Afghanistan
UNDP in Asia and the Pacific
 
FEMTOprint Corporate Brochure
FEMTOprint Corporate BrochureFEMTOprint Corporate Brochure
FEMTOprint Corporate Brochure
Sofia Taufer
 
Performance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious businessPerformance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious business
Harald Zeitlhofer
 
Don’t Lose Your Caffeine Buzz to Cybercrime
Don’t Lose Your Caffeine Buzz to CybercrimeDon’t Lose Your Caffeine Buzz to Cybercrime
Don’t Lose Your Caffeine Buzz to Cybercrime
ThreatMetrix
 
Инвестиционная стратегия (Москва)
Инвестиционная стратегия (Москва)Инвестиционная стратегия (Москва)
Инвестиционная стратегия (Москва)
Anastasia Vinogradova
 
ASEE Metal Impingement paper 50 final
ASEE Metal Impingement paper 50 finalASEE Metal Impingement paper 50 final
ASEE Metal Impingement paper 50 final
André Eggert
 
A Review of EnglishCentral (an online video-based material)
A Review of EnglishCentral (an online video-based material) A Review of EnglishCentral (an online video-based material)
A Review of EnglishCentral (an online video-based material)
iumstech
 
자료집 416특별법국민설명회 20140709
자료집 416특별법국민설명회 20140709자료집 416특별법국민설명회 20140709
자료집 416특별법국민설명회 20140709
Soon Il Kwon
 
Procesadores
ProcesadoresProcesadores
Procesadores
SamyMP
 
финансовый рынок _09(1)
финансовый рынок _09(1)финансовый рынок _09(1)
финансовый рынок _09(1)
Anastasia Vinogradova
 
политех
политехполитех
политех
Bul1t
 
Implications Enclosure and Privatization of the Commons on Women’s Access to ...
Implications Enclosure and Privatization of the Commons on Women’s Access to ...Implications Enclosure and Privatization of the Commons on Women’s Access to ...
Implications Enclosure and Privatization of the Commons on Women’s Access to ...
UNDP in Asia and the Pacific
 
Double looplearning
Double looplearningDouble looplearning
Double looplearning
banupatmi
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rpl
Denny Yahya
 
մեր բնակավայրի հիմնախնդիրները
մեր բնակավայրի հիմնախնդիրներըմեր բնակավայրի հիմնախնդիրները
մեր բնակավայրի հիմնախնդիրները
davidnikoghosyan
 
IRM archiveDoc – электронный архив: система электронного хранения документов
IRM archiveDoc – электронный архив: система электронного хранения документов IRM archiveDoc – электронный архив: система электронного хранения документов
IRM archiveDoc – электронный архив: система электронного хранения документов
Группа компаний «Системы и Проекты»
 
Linking State and Non-State Justice Systems in Afghanistan
Linking State and Non-State Justice Systems in Afghanistan Linking State and Non-State Justice Systems in Afghanistan
Linking State and Non-State Justice Systems in Afghanistan
UNDP in Asia and the Pacific
 
Ad

Similar to Boost your website by running PHP on Nginx (20)

Pecl Picks
Pecl PicksPecl Picks
Pecl Picks
Elizabeth Smith
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
Wim Godden
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
Frontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and HowFrontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and How
Ecommerce Solution Provider SysIQ
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera Software
Cosimo Streppone
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
Stephan Hochdörfer
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open
 
CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009
Jason Davies
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
Wim Godden
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
Kevin Jones
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
Jeff Jones
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
NGINX, Inc.
 
HTTP Caching and PHP
HTTP Caching and PHPHTTP Caching and PHP
HTTP Caching and PHP
David de Boer
 
The Need For Speed: Caching Fundamentals
The Need For Speed: Caching FundamentalsThe Need For Speed: Caching Fundamentals
The Need For Speed: Caching Fundamentals
Frankie Jarrett
 
Using NGINX as an Effective and Highly Available Content Cache
Using NGINX as an Effective and Highly Available Content CacheUsing NGINX as an Effective and Highly Available Content Cache
Using NGINX as an Effective and Highly Available Content Cache
Kevin Jones
 
June8 presentation
June8 presentationJune8 presentation
June8 presentation
nicobn
 
nodejs_at_a_glance, understanding java script
nodejs_at_a_glance, understanding java scriptnodejs_at_a_glance, understanding java script
nodejs_at_a_glance, understanding java script
mohammedarshadhussai4
 
Running PHP on nginx
Running PHP on nginxRunning PHP on nginx
Running PHP on nginx
Harald Zeitlhofer
 
HTML5: huh, what is it good for?
HTML5: huh, what is it good for?HTML5: huh, what is it good for?
HTML5: huh, what is it good for?
Remy Sharp
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
Jurriaan Persyn
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
Wim Godden
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera Software
Cosimo Streppone
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
Stephan Hochdörfer
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open
 
CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009
Jason Davies
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
Wim Godden
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
Kevin Jones
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
Jeff Jones
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
NGINX, Inc.
 
HTTP Caching and PHP
HTTP Caching and PHPHTTP Caching and PHP
HTTP Caching and PHP
David de Boer
 
The Need For Speed: Caching Fundamentals
The Need For Speed: Caching FundamentalsThe Need For Speed: Caching Fundamentals
The Need For Speed: Caching Fundamentals
Frankie Jarrett
 
Using NGINX as an Effective and Highly Available Content Cache
Using NGINX as an Effective and Highly Available Content CacheUsing NGINX as an Effective and Highly Available Content Cache
Using NGINX as an Effective and Highly Available Content Cache
Kevin Jones
 
June8 presentation
June8 presentationJune8 presentation
June8 presentation
nicobn
 
nodejs_at_a_glance, understanding java script
nodejs_at_a_glance, understanding java scriptnodejs_at_a_glance, understanding java script
nodejs_at_a_glance, understanding java script
mohammedarshadhussai4
 
HTML5: huh, what is it good for?
HTML5: huh, what is it good for?HTML5: huh, what is it good for?
HTML5: huh, what is it good for?
Remy Sharp
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
Jurriaan Persyn
 
Ad

More from Harald Zeitlhofer (7)

Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtn
Harald Zeitlhofer
 
PHP App Performance / Sydney PHP
PHP App Performance / Sydney PHPPHP App Performance / Sydney PHP
PHP App Performance / Sydney PHP
Harald Zeitlhofer
 
PHP application performance
PHP application performancePHP application performance
PHP application performance
Harald Zeitlhofer
 
PHP Application Performance
PHP Application PerformancePHP Application Performance
PHP Application Performance
Harald Zeitlhofer
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
Harald Zeitlhofer
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and Spelix
Harald Zeitlhofer
 
Nginx, PHP and Node.js
Nginx, PHP and Node.jsNginx, PHP and Node.js
Nginx, PHP and Node.js
Harald Zeitlhofer
 
Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtn
Harald Zeitlhofer
 
PHP App Performance / Sydney PHP
PHP App Performance / Sydney PHPPHP App Performance / Sydney PHP
PHP App Performance / Sydney PHP
Harald Zeitlhofer
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
Harald Zeitlhofer
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and Spelix
Harald Zeitlhofer
 

Recently uploaded (20)

Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 

Boost your website by running PHP on Nginx

Editor's Notes

  • #6: application performance. high performance web sites scalable cloud infrastructure flexible microservice architecture DBA: database tuning Sysop: webservers, caching servers, reverse proxies, load balancers migrated to nginx Developer: new frameworks
  • #13: 304 conditional caching with Entity Tag (E-Tag) header set