Sto usando AWS Beanstalk per la mia applicazione Django/Python e mi piacerebbe utilizzare il modulo mod_pagespeed di Google. È possibile installare ed eseguire mod_pagespeed usando il file .ebextensions/.config?È possibile utilizzare la configurazione di .Bextensions di AWS Beanstalk per installare il modulo Apache mod_pagespeed?
risposta
Scaricare il pacchetto
Aggiungere il numero di giri nella directory ebextensions
creare un file .config nella directory .ebextensions
aggiungere comandi al file di configurazione in questo modo:
container_commands:
01-command:
command: rm -rf /pagespeed/ebextensions
02-command:
command: mkdir -p /pagespeed/ebextensions
03-command:
command: cp -R .ebextensions/* /pagespeed/ebextensions/
04-command:
command: rpm -U /pagespeed/ebextensions/mod-pagespeed.rpm
Assicurarsi che i comandi siano rientrati come mostrato, senza tabulazioni, altrimenti non funzionerà.
scambia "mod-pagespeed.rpm" per qualunque sia il nome del file rpm attuale.
Ok, quindi voglio aggiungere la risposta di Charlie Smith. Ti suggerirei di assicurarti di avere le seguenti cose attivate.
- mod_deflate - Probabilmente vuoi Gzip di html, css, xml e javascript.
- Attivare il filtro di riscrittura domini nella vostra apache.conf se si utilizza CDN (es. AWS CloudFront)
- sito a pochi Cache-Control per immagini e css in modo Page Speed sarà in grado di estendere la cache quando si accende il extend_cache filter.
- Mi piacciono anche i filtri rewrite_javascript, dns_prefetch, collapse_whitespace e combine_javascript.
Ecco gli GitHub Gists che mostrano come è stato fatto.
- The apache conf file
- The Beanstalk container_commands (che sono per lo più la stessa di Charlie) ragazzi
Grazie! Ho funzionato alla grande seguendo la tua risposta @ man2xxl.
Non dovete fare confusione con la directory/Page Speed / estensioni, però, la pianta di fagioli .ebextensions config può essere semplicemente:
packages:
yum:
at: []
10_setup_apache_for_mod_pagespeed:
command: "cp enable_mod_pagespeed.conf /etc/httpd/conf.d"
20_install_mod_pagespeed:
command: rpm -U -iv --replacepkgs mod-pagespeed-*.rpm
30_clear_mod_pagespeed_cache:
command: touch /var/cache/mod_pagespeed/cache.flush
Questo presuppone che tu abbia il numero di giri mod_pagespeed incluso in la radice del tuo repository. – colllin
È possibile installare i pacchetti da URL. Quindi non devi scaricare e distribuire l'RPM. Qualcosa di simile a questo funziona:
packages:
rpm:
pagespeed: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
files:
"/etc/httpd/conf.d/zzzz-pagespeed-options.conf":
mode: "00644"
owner: root
group: root
encoding: plain
content: |
# put your pagespeed configuration here
Si noti che ho intitolato il file di zzzz-Speed-options.conf modo che il server httpd lo caricherà scorso.
Un altro vantaggio di questo è che non è necessario includere alcun comando o preoccuparsi di copiare i file su e di mantenere i file nella cartella .ebextensions. Basta aggiornare la voce dei file nel file .config.
Verificherà anche che sia abilitato? – man2xxl
il rpm installa i file .conf per te, se trovi che devi riavviare apache, aggiungi un altro comando al file.file di configurazione per "apachectl restart" –
Suggerirei di riscrivere i comandi allo script bash, perché i comandi del contenitore vengono eseguiti in qualsiasi momento durante la distribuzione. Lo script di Bash può controllare è la prima volta che viene eseguito e quindi installare le modifiche necessarie. Ciò ti aiuterà a ridurre i tempi di fermo durante la distribuzione. –