Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Génération statique de pix-site #201

Merged
merged 17 commits into from
Nov 10, 2020

Conversation

bpetetot
Copy link
Contributor

@bpetetot bpetetot commented Oct 15, 2020

🦄 Problème

Suite aux attaques de pix.fr, nous avons constaté que les conteneurs crachaient suite à une rapide montée mémoire des serveurs, car le site est actuellement en server-side rendering.

🤖 Solution

Afin de résorber ces attaques plus facilement et étant donné la typologie du site (purement statique), un piste de réflexion serait de générer pix-site et pix-pro en pur statique (sans server-side rendering) et de l’exposer sur un CDN.

Nuxt permet facilement de générer un site en statique grâce à la propriété target: ”static” dans le fichier nuxt.config.js

Principe de fonctionnement:

  • Le site est “buildé” comme aujourd’hui grâce à la commande nuxt build
  • Ensuite on génère la version statique par la commande nuxt export. Cette commande réalise les opérations suivantes:
    • Génération statique de chaque page pour chaque langue définie dans le router (les appels prismic sont réalisés pour générer ces pages)
    • Génération statique de toutes les pages déclarées via les balise <Link /> du router
  • Tout est exporté dans un dossier dist qui est exposé par un serveur nginx (on peut utiliser nuxt serve en local)
  • Les redirections sont gérées dans la configuration nginx: servers.conf.erb.

🌈 Remarques

Tâches à réaliser:

  • Activer le mode statique de nuxt
  • Convertir pix-site pour être compatible à la génération statique de nuxt (suppression de window et documents sans locale)
  • Convertir pix-pro pour être compatible à la génération statique de nuxt
  • Vérifier le code supprimé (voir commit window)
  • Déploiement sur les RAs
  • Établir le nouveau process de dev & déploiement (pas de changement à ce jour)
  • Déployer avec pix-bot (utiliser le hook de prismic?) -> fera l'objet d'une PR dédiée sur pix-bot
  • Mettre en place un nginx sur Scalingo

Lors de la Mise en production de cette PR, il faudra publier la page Prismic de la navigation

@pix-service
Copy link

I'm deploying this PR to these urls:

Please check it out!

@bpetetot bpetetot force-pushed the build-pix-site-as-static-website branch 3 times, most recently from 83b7071 to 319e8cb Compare November 2, 2020 15:07
@HEYGUL HEYGUL force-pushed the build-pix-site-as-static-website branch 8 times, most recently from a3bd7d8 to f30482a Compare November 3, 2020 16:52
@HEYGUL HEYGUL marked this pull request as ready for review November 3, 2020 16:58
@HEYGUL HEYGUL force-pushed the build-pix-site-as-static-website branch 2 times, most recently from 4faa050 to 9113d97 Compare November 3, 2020 17:14
store/index.js Show resolved Hide resolved
components/slices/PageBanner.vue Outdated Show resolved Hide resolved
components/slices/PageSection.vue Show resolved Hide resolved
@HEYGUL HEYGUL force-pushed the build-pix-site-as-static-website branch from 668383b to e3d8fcb Compare November 5, 2020 11:33
@bpetetot bpetetot force-pushed the build-pix-site-as-static-website branch 2 times, most recently from 535842a to 8e21f90 Compare November 5, 2020 13:19
@bpetetot bpetetot force-pushed the build-pix-site-as-static-website branch 4 times, most recently from 35c8187 to 0c12d09 Compare November 6, 2020 11:35
@HEYGUL HEYGUL force-pushed the build-pix-site-as-static-website branch from b067852 to 589a606 Compare November 10, 2020 10:18
@HEYGUL
Copy link
Contributor

HEYGUL commented Nov 10, 2020

Il reste encore 2 problèmes à résoudre:

1. Il y a des redirections étranges en http (au lieu de https) quand on souhaite accéder à des sous-pages.

Par exemple: site-pr201.review.pix.fr/competences

Mais il semble qu'on ait pas le souci en allant sur site-pr201.review.pix.fr/competences (juste un slash en plus à la fin)

2. le site en .org ne change pas la locale en fr:

site-pr201.review.pix.org devrait rediriger vers site-pr201.review.pix.fr/fr

La configuration de la redirection a été définie dans le nginx

Ces 2 problèmes sont désormais corrigés avec la configuration nginx à jour.

Copy link
Contributor

@jbuget jbuget left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 💪

.gitignore Show resolved Hide resolved
README.md Show resolved Hide resolved
components/PixLink.vue Show resolved Hide resolved
components/slices/PageBanner.vue Show resolved Hide resolved
tests.sh Show resolved Hide resolved
@HEYGUL HEYGUL force-pushed the build-pix-site-as-static-website branch from cc616a1 to e6acbf9 Compare November 10, 2020 11:25
pages/pix-site/legal-notices.vue Show resolved Hide resolved
pages/pix-site/stats.vue Show resolved Hide resolved
@HEYGUL HEYGUL merged commit 2b67114 into dev Nov 10, 2020
@HEYGUL HEYGUL deleted the build-pix-site-as-static-website branch November 10, 2020 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants