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
Anonymous
Пардон. =) Я невнимателен.
Anonymous
151.101.60.133
Anonymous
Это с удалённой машины.
Anonymous
151.101.12.133 с локальной.
Anonymous
Я так понимаю, далеко не у всех отлетело.
Anonymous
Но методы идиотские, да.
Konstantin
/routes
Aleksey
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?
Ilya
Nikita
а без nginx прокси работает?
Ilya
X-Moz: prefetch (Mozilla), X-Purpose: preview (Safari, Opera), and X-Purpose: instant (Chrome)
Ilya
Nikita
ну офигеть)) так ты проверь без nginx
Ilya
блин. затупил. все верно.
нет, без nginx не работает
Ilya
пока никак, по идее нужно сделать что-то такое
proxy_set_header X-Purpose <variable>;
так вот я не знаю как эту variable указать. Либо я что-то не так понимаю. Поясните пжлст)
Ilya
в доке nginx не нашел ничего
Ilya
я никак не посылаю, этот заголовок же браузер вроде прокидывает
Ilya
понял, попробую. ну а как потом быть?
Максим
А кто нибудь собирает node.js приложение в один файл на продакшене?
Vlad
webpack/browserify
Максим
Серверную часть?
Ilya
да
Loyd
зачем?
Oleg
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
совсем не
Ale
Loyd
Ну тут как посмотреть. Если используется какой-нибудь babel или typescript, то есть всё равно sourcemap вкручивать, то мб и есть смысл. Но если чистая нода, то хз