SlideShare une entreprise Scribd logo
1  sur  55
Deploying Apache Traffic Server Leif Hedstrom @zwoop +lhedstrom
Who am I? ,[object Object]
Spending much of my time on Apache Traffic Server, and how it can best integrate with our Ghost infrastructure and services
Several projects at Akamai are made possible with Traffic Serverlhedstro@akamai.com
Who am I? ,[object Object]
Committer for Apache Traffic Server
VP of Apache Traffic Server PMC
ASF memberzwoop@apache.org
Agenda 	Types of proxies Building and installation ,[object Object]
Detailed configurations
Static Content (forward proxying)
Forward and transparent proxy
Advanced features
Cache, clustering, monitoring etc.,[object Object]
Mandatory useless benchmark …
Mandatory less useless benchmark …
Intermediaries – Forward Proxy
Intermediaries – Reverse Proxy
Intermediaries – Intercepting (transparent) Proxy
Small deployment
Large deployments
Installation or Building
Running it ,[object Object],	$ sudotrafficserver start 	$ sudotrafficserver stop ,[object Object],	$ sudotraffic_cop ,[object Object],	$ sudotraffic_server [-T http.*] ,[object Object],	$ sudogdbtraffic_server 	(gdb) handle SIGPIPE nopassnostopnoprint 	(gdb) run (or attach to running traffic_server process)
Running it ,[object Object],$ sudotrafficserver start 	$ sudotrafficserver stop ,[object Object],	$ sudotraffic_cop ,[object Object],	$ sudotraffic_server [-T http.*] ,[object Object],	$ sudogdbtraffic_server 	(gdb) handle SIGPIPE nopassnostopnoprint 	(gdb) run (or attach to running traffic_server process)
Running it ,[object Object],	$ sudotrafficserver start 	$ sudotrafficserver stop ,[object Object],	$ sudotraffic_cop ,[object Object],	$ sudotraffic_server [-T http.*] ,[object Object],	$ sudogdbtraffic_server 	(gdb) handle SIGPIPE nopassnostopnoprint 	(gdb) run (or attach to running traffic_server process)
Running it ,[object Object],	$ sudotrafficserver start 	$ sudotrafficserver stop ,[object Object],	$ sudotraffic_cop ,[object Object],	$ sudotraffic_server [-T http.*] ,[object Object],	$ sudogdbtraffic_server 	(gdb) handle SIGPIPE nopassnostopnoprint 	(gdb) run (or attach to running traffic_server process)
Running it ,[object Object],	$ sudotrafficserver start 	$ sudotrafficserver stop ,[object Object],	$ sudotraffic_cop ,[object Object],	$ sudotraffic_server [-T http.*] ,[object Object],$ sudogdbtraffic_server 	(gdb) handle SIGPIPE nopassnostopnoprint 	(gdb) run (or attach to running traffic_server process)
plugin.config records.config partition.config hosting.config cache.config update.config ip_allow.config storage.config logs_xml.config parent.config remap.config icp.config
records.config storage.config remap.config
remap.config ,[object Object]
Typically used with reverse proxying, but  can be used in forward proxy as well.
E.g. remap all traffic for http://twitter.com to https://twitter.com
Change can almost always be reloaded without server restart, except when a plugin changes.	$ sudotraffic_line –x ,[object Object],[object Object]
remap.config examples map http://www.example.com/css http://css.example.com map http://www.example.com http://real.example.com reverse_map http://real.example.com http://www.example.com redirect http://example.com  http://www.example.com regex_map http://(.*)example.com http://other.example.com/$1 map / http://kitchensink.example.com
remap.config examples map http://www.example.com/css http://css.example.com map http://www.example.com http://real.example.com reverse_map http://real.example.com http://www.example.com redirect http://example.com  http://www.example.com regex_map http://(.*)example.com http://other.example.com/$1 map / http://kitchensink.example.com
remap.config examples map http://www.example.com/css http://css.example.com map http://www.example.com http://real.example.com reverse_map http://real.example.com http://www.example.com redirect http://example.com  http://www.example.com regex_map http://(.*)example.com http://other.example.com/$1 map / http://kitchensink.example.com
remap.config examples map http://www.example.com/css http://css.example.com map http://www.example.com http://real.example.com reverse_map http://real.example.com http://www.example.com redirect http://example.com  http://www.example.com regex_map http://(.*)example.com http://other.example.com/$1 map / http://kitchensink.example.com
storage.config ,[object Object]
At least one disk (or “file”) required for any caching to happen
Recommended usage is to use the raw devices/dev/sde1 /dev/sdf ,[object Object],/some/path/ts-cache 1GB ,[object Object]
Tiered caches coming (e.g. SSD disks on top of rotational disks),[object Object]
Common configurations are in default config file
There are many more configurations available
The defaults are generally “good”
Default configurations are for a reverse proxy, aka “accelerator”. This requires at a minimum configuration changes to remap.config
Many configurations (but not all) can be reloaded without restart	$ sudotraffic_line -x
records.config for reverse proxy CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.cache.ram_cache.size INT 1G CONFIG proxy.config.cache.ram_cache_cutoff INT 1M CONFIG proxy.config.reverse_proxy.enabled INT 1 CONFIG proxy.config.url_remap.remap_required INT 1 CONFIG proxy.config.url_remap.pristine_host_hdr INT 0 CONFIG proxy.config.http.negative_caching_enabled INT 1 CONFIG proxy.config.http.negative_caching_lifetime INT 120 CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1 CONFIG proxy.config.http.normalize_ae_gzip INT 1
records.config for reverse proxy CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.cache.ram_cache.size INT 1G CONFIG proxy.config.cache.ram_cache_cutoff INT 1M CONFIG proxy.config.reverse_proxy.enabled INT 1 CONFIG proxy.config.url_remap.remap_required INT 1 CONFIG proxy.config.url_remap.pristine_host_hdr INT 0 CONFIG proxy.config.http.negative_caching_enabled INT 1 CONFIG proxy.config.http.negative_caching_lifetime INT 120 CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1 CONFIG proxy.config.http.normalize_ae_gzip INT 1
records.config for reverse proxy CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.cache.ram_cache.size INT 1G CONFIG proxy.config.cache.ram_cache_cutoff INT 1M CONFIG proxy.config.reverse_proxy.enabled INT 1 CONFIG proxy.config.url_remap.remap_required INT 1 CONFIG proxy.config.url_remap.pristine_host_hdr INT 0 CONFIG proxy.config.http.negative_caching_enabled INT 1 CONFIG proxy.config.http.negative_caching_lifetime INT 120 CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1 CONFIG proxy.config.http.normalize_ae_gzip INT 1
records.config for forward proxy CONFIG proxy.config.cache.ram_cache.size INT 16G CONFIG proxy.config.url_remap.remap_required INT 0 CONFIG proxy.config.reverse_proxy.enabled INT 0 CONFIG proxy.config.http.transaction_active_timeout_in INT 1800 CONFIG proxy.config.http.normalize_ae_gzip INT 1 CONFIG proxy.config.dns.dedicated_thread INT 1 (transparent proxy would be very similar)
records.config for forward proxy CONFIG proxy.config.cache.ram_cache.size INT 16G CONFIG proxy.config.url_remap.remap_required INT 0 CONFIG proxy.config.reverse_proxy.enabled INT 0 CONFIG proxy.config.http.transaction_active_timeout_in INT 1800 CONFIG proxy.config.http.normalize_ae_gzip INT 1 CONFIG proxy.config.dns.dedicated_thread INT 1 (transparent proxy would be very similar)
Testing and debugging configurations ,[object Object]
proxy.config.http.insert_request_via_str
proxy.config.http.insert_response_via_str
proxy.config.http.verbose_via_str

Contenu connexe

Tendances

NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
nickblah
 
Setting up your Multi Engine Environment - Apache Railo and ColdFusion
Setting up your Multi Engine Environment - Apache Railo and ColdFusionSetting up your Multi Engine Environment - Apache Railo and ColdFusion
Setting up your Multi Engine Environment - Apache Railo and ColdFusion
Gavin Pickin
 

Tendances (19)

Apc presentation
Apc presentationApc presentation
Apc presentation
 
How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 
Running php on nginx
Running php on nginxRunning php on nginx
Running php on nginx
 
PHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on NginxPHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on Nginx
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀
 
Performance scalability brandonlyon
Performance scalability brandonlyonPerformance scalability brandonlyon
Performance scalability brandonlyon
 
Web Server Load Balancer
Web Server Load BalancerWeb Server Load Balancer
Web Server Load Balancer
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
Boost your website by running PHP on Nginx
Boost your website by running PHP on NginxBoost your website by running PHP on Nginx
Boost your website by running PHP on Nginx
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHP
 
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: ScaleGraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
 
Going crazy with Varnish and Symfony
Going crazy with Varnish and SymfonyGoing crazy with Varnish and Symfony
Going crazy with Varnish and Symfony
 
Load Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesLoad Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - Slides
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
Setting up your Multi Engine Environment - Apache Railo and ColdFusion
Setting up your Multi Engine Environment - Apache Railo and ColdFusionSetting up your Multi Engine Environment - Apache Railo and ColdFusion
Setting up your Multi Engine Environment - Apache Railo and ColdFusion
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 
Making Symofny shine with Varnish - SymfonyCon Madrid 2014
Making Symofny shine with Varnish - SymfonyCon Madrid 2014Making Symofny shine with Varnish - SymfonyCon Madrid 2014
Making Symofny shine with Varnish - SymfonyCon Madrid 2014
 

En vedette

Dayout telenor staff event By Happy Lines
Dayout telenor staff event By Happy LinesDayout telenor staff event By Happy Lines
Dayout telenor staff event By Happy Lines
Happy Lines
 

En vedette (16)

Mātes diena_MD
Mātes diena_MDMātes diena_MD
Mātes diena_MD
 
Velocity 2010 - ATS
Velocity 2010 - ATSVelocity 2010 - ATS
Velocity 2010 - ATS
 
Presentacion voki.com
Presentacion voki.comPresentacion voki.com
Presentacion voki.com
 
Creativity
Creativity Creativity
Creativity
 
Pres 1 agenda
Pres 1   agendaPres 1   agenda
Pres 1 agenda
 
Pres 1 - introduction
Pres 1  - introductionPres 1  - introduction
Pres 1 - introduction
 
Usenix lisa 2011
Usenix lisa 2011Usenix lisa 2011
Usenix lisa 2011
 
Dayout telenor staff event By Happy Lines
Dayout telenor staff event By Happy LinesDayout telenor staff event By Happy Lines
Dayout telenor staff event By Happy Lines
 
Pavasaris Kaltenē
Pavasaris KaltenēPavasaris Kaltenē
Pavasaris Kaltenē
 
Apache con 2011 gd
Apache con 2011 gdApache con 2011 gd
Apache con 2011 gd
 
Sound jeopardy review
Sound jeopardy reviewSound jeopardy review
Sound jeopardy review
 
Introduction to karen bloomfield
Introduction to karen bloomfieldIntroduction to karen bloomfield
Introduction to karen bloomfield
 
Physical evaluation test
Physical evaluation testPhysical evaluation test
Physical evaluation test
 
Business Plan
Business PlanBusiness Plan
Business Plan
 
Rit 2011 ats
Rit 2011 atsRit 2011 ats
Rit 2011 ats
 
Hablemos de Big data
Hablemos de Big dataHablemos de Big data
Hablemos de Big data
 

Similaire à Oscon 2011 - ATS

Similaire à Oscon 2011 - ATS (20)

Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
 
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
 
Nginx + PHP
Nginx + PHPNginx + PHP
Nginx + PHP
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4
 
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse ProxyNginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
 
Oscon 2010 - ATS
Oscon 2010 - ATSOscon 2010 - ATS
Oscon 2010 - ATS
 
Http capturing
Http capturingHttp capturing
Http capturing
 
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!
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
NGINX Can Do That? Test Drive Your Config File!
NGINX Can Do That? Test Drive Your Config File!NGINX Can Do That? Test Drive Your Config File!
NGINX Can Do That? Test Drive Your Config File!
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
How to ensure Presto scalability 
in multi use case
How to ensure Presto scalability 
in multi use case How to ensure Presto scalability 
in multi use case
How to ensure Presto scalability 
in multi use case
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with Nginx
 
Using aphace-as-proxy-server
Using aphace-as-proxy-serverUsing aphace-as-proxy-server
Using aphace-as-proxy-server
 
PostgreSQL High-Availability and Geographic Locality using consul
PostgreSQL High-Availability and Geographic Locality using consulPostgreSQL High-Availability and Geographic Locality using consul
PostgreSQL High-Availability and Geographic Locality using consul
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Oscon 2011 - ATS

Notes de l'éditeur

  1. The point here is that performance of modern proxy servers is already ridiculous. Other things are more important, such as latency, or features.
  2. The point here is that performance of modern proxy servers is already ridiculous. Other things are more important, such as latency, or features.
  3. Could use DNS, or UCARP, or other router logic at the SLB layer – heck, even ATS on top of ATS is useful
  4. Binary packages preferredFetch source from trafficserver.apache.orgStandard gnu configure build process (./configure && make && sudo make install)Default configuration is as a reverse proxy, with no remap rules. This renders it completely useless, and that’s intentional.
  5. Traffic Server comes with a fairly large number of configuration files. Most of the configurations have reasonable “defaults”. Most applications wouldn’t use even a fraction of the available configuration options and features.
  6. Getting started, only two or maybe three configuration files are necessary to tweak. records.config is a key-value configuration format, holding most global application configuration settings storage.config is used to specify disk storage configurations remap.config is used to specify mapping rules for rewriting requests, typically in a reverse proxy setup
  7. Note that order matters in remap.config, and it’s currently (and unfortunately) not particularly logical.Caveat: different mapping types have different priorities“map” happens before “redirect” for example, which is rather unfortunate (and we’ll take patches to fix this)
  8. Many, many configuration options for custom log formats, we’ll discuss a few
  9. Many, many configuration options for custom log formats, we’ll discuss a few
  10. Many, many configuration options for custom log formats, we’ll discuss a few