Vladimir
Mannaro
надо короч устроить митинг. Типа в поддержку Яровой. Кричать, что она круче путина и толкать ее в президенты. Путин заревнует и завтра ее найдут в канаве. Многоходовочка =)
Yan👀
пока еще не записывают)
Vlad
http://reestr.rublacklist.net/rec/89105/
Ilya
Подскажите как в nodejs отловить, что пришел preload (prefetch) запрос? Может кто сталкивался с такой темой? В общем, проблема такова. При загрузке сервиса надо автоматически авторизировать юзера (через API c использованием jwt токена в куках). Сейчас я это делаю на сервере. Но в логах API сервера заметил, что приходят несколько запросов на авторизацию, один (скорее всего) приходит когда браузер делает prefetch (пользователь вводит адрес сайта в строку браузера, соответственно app.get(‘*’) срабатывает), второй когда пользователь загружает страницу. 2 запроса за раз это слишком жирно для сервиса в несколько тысяч пользователей. У меня есть идея отловить prefetch (preload) запрос и не авторизировать юзера. Это если кратко
Ilya
Подскажите, кто-то может сталкивался с таким. Заранее благодарен за помощь!
Энлов Свичблейд
А у префетча какие заголовки?
Энлов Свичблейд
Посмотри реквест внимательно, я думаю там есть то что тебе надо
Ilya
Вроде такие X-Moz: prefetch (Mozilla), X-Purpose: preview (Safari, Opera), and X-Purpose: instant (Chrome)
Энлов Свичблейд
Ну вот по заголовкам можно фильтровать
Ilya
Мне интересно кто как такую штуку у себя решал. Странно, если никто не сталкивался с такой темой
Энлов Свичблейд
Вообще не ок если на апи сервер префетчи ходят не от вашего приложения
Ilya
На апи сервер ходят запросы авторизации
Ilya
Получаются лишние. В этом баг
Michael
Почему лишние
Michael
Браузер должен получить страницу?
Michael
Должен
Michael
Ну либо отдавай Bad Request
Ilya
Браузер пусть получает, но без пользователя в сторе
Michael
Почему без?
Ilya
Когда приходит префетч происходит запрос к апи на авторизацию. А затем когда страница загружена этот запрос уходит ещё раз.
Michael
Так префетч и страница у тебя разные
Michael
/ и /routes
Ilya
Да. Разные. Но у меня все роуты обрабатываются в app.get("*'). Либо я тебя не допонял.
Michael
Либо аборти реквест с концами, либо забей
Ilya
Использую стандартный стор с redux
Ilya
Спасибо за советы парни.
Anonymous
/routes
Denis
Сегодня заезжал в Яндекс, нам предоставят новый, недавно открывшийся зал. :) Кто ещё не успел, регистрируемся: https://events.yandex.ru/events/yagosti/13-jul-2016/ Внимание! Есть секция 5-7 минут для короткого доклада в рамках рубрики "Открытый микрофон", пишите в личку. Отличный способ попробовать свои силы даже если никогда не выступал до этого. Тема может быть любая полезная в контексте Node.js. :)
andrei
/routes
Anonymous
почти у всех в рф, ркн заблочи github cdn по айпи другого сайта
А где можно пруф глянуть для пдробного ознакомления?
Anonymous
Пардон. =) Я невнимателен.
Anonymous
151.101.60.133
Anonymous
Это с удалённой машины.
Anonymous
151.101.12.133 с локальной.
Anonymous
Я так понимаю, далеко не у всех отлетело.
Anonymous
Но методы идиотские, да.
Konstantin
/routes
Ilya
Привет всем! Как посмотреть все заголовки, которые приходят в риквесте к NGINX и проксировать их все через nginx? а то прокидывать каждый через proxy_set_headers что-то нудно.
Ilya
И другой вопрос, как прокинуть Prefetch хэдер через proxy_set_headers? не могу в доке найти. Спасибо заранее!
Ilya
Смотрю в логах и не вижу хэдеров может я где накосячил в настройках да вроде нет server { listen <IP>:80; server_name <exmaple.com>; root /usr/share/nginx/html; index index.html index.htm; location / { proxy_pass http://127.0.0.1:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; proxy_pass_request_headers on; } }
Ilya
там не смотрел, напомни какой файлик надо посмотреть?
Ilya
понял, спасибо.
Nikita
proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-NginX-Proxy true; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_redirect off;
Nikita
у меня вот так работало. тебе для ws?
Nikita
а без nginx прокси работает?
Ilya
X-Moz: prefetch (Mozilla), X-Purpose: preview (Safari, Opera), and X-Purpose: instant (Chrome)
Nikita
ну офигеть)) так ты проверь без nginx
Ilya
ну офигеть)) так ты проверь без nginx
поясни пожалуйста как по быстрому это можно проверить?
Ilya
блин. затупил. все верно. нет, без nginx не работает
Ilya
пока никак, по идее нужно сделать что-то такое proxy_set_header X-Purpose <variable>; так вот я не знаю как эту variable указать. Либо я что-то не так понимаю. Поясните пжлст)
Ilya
в доке nginx не нашел ничего
Ilya
я никак не посылаю, этот заголовок же браузер вроде прокидывает
Ilya
понял, попробую. ну а как потом быть?
Максим
А кто нибудь собирает node.js приложение в один файл на продакшене?
Vlad
webpack/browserify
Максим
Серверную часть?
Ilya
да
Loyd
зачем?
Ale
Зачем х3?
Nikita
оптимизации через closure compiler, например
Loyd
Хм. А можно пример таких оптимизаций?
Nikita
// foo.js module.exports = 1; // bar.js const foo = require('./foo'); if (foo) { // do something } else { // do something else } // bundle.js // do something else
Nikita
для реакта 1 из советов для ускорения брать react/dist/react.min.js в продакшене с серверным рендерингм. process.env.NODE_ENV === 'production' - не самая дешевая проверка
Nikita
можно не плохо так помочь движку убрав код, который никогда не выполнится в общем
Loyd
Движку на этот код в целом наплевать так-то
Ale
Житы всякие?
Loyd
Да и ради простейшего инлайна всё усложнять
Loyd
Дык, в жите не просто так два компилятора, ага
Ale
Ну вот и мне так показалось)
Ale
Для клиента оно понятно, бандл уменьшим
Loyd
угу
Ale
А для ноды не совсем
Loyd
совсем не
Loyd
Ну тут как посмотреть. Если используется какой-нибудь babel или typescript, то есть всё равно sourcemap вкручивать, то мб и есть смысл. Но если чистая нода, то хз