Статичний клон Reddit: редіректи Cloudflare та Web-Push
Продовжую досліджувати тему статичного клона редіт, в цій серії йдеться про редіректи та веб-пуши
Редіректи в Cloudflare працюють для статичних сайтів. Можно редірекнути одну сторінку на іншу, або зробити проксі-редірект, тобто залишити URL поточним, а показати контент з іншої сторінки.
Мені як раз потрібен другий проксі-редірект. Я дізнався що R2 не вміє автоматично резолвити index.html
, тому варіант з тим щоб просто кинути R2 на основний домен виглядає як не варіант. Тому в мене є запасний план – зробити динамічний URL, виду: /u/:username/:year/:month/:day/:slug
котрий буде автоматично прокситься на сторінку /post.html
і вже там будемо дивитися на location.href
та підвантажувати контент з R2 /u/:username/:year/:month/:day/:slug/index.html
.
Проксі-редирект працює тільки для файлів, які знаходяться на сайті, тобто відносні. Урли з інших доменів не працюють. Редірект можно налаштувати наступним чином:
1
2
/a /b 200
/b /c 200
Подумав про Web-Push в контексті проєкту. Його можно застосувати для надсилання сповіщень про новий пост чи доданий комент всім підписникам, таким чином якщо я планую робити воркер, котрий буде парсити XML стрічки користувачів, щоб зібрати стрічку оновлень, то достатньо збрати оновлення один раз після запуску сайту та покласти всі стрічки в кеш браузера (на 12 годин) через Веб-Воркер, а тоді коли прийде пуш – попросити воркер перефетчити стрічку. Як на мене, це приберає зайве навантаження на воркер, тому що люди пишуть у стрічки не так часто.