Andriy
Вот мой сервер:
Andriy
Artem
ssl ты где подключил?
Andriy
Не подключал еще
Andriy
Он у меня подключен в NGINX
Andriy
У меня приложение на PHP, а node используется только для socket через Redis
Georgiy
ну ходи так же через nginx в https
Andriy
Мне нужно просто поднять сервер не на http, а на https
Andriy
Как это сделать?
Artem
ssl подключи на ноде
Alex
не надо подключать ssl на ноде. прокинь его с nginx. В proxy_pass добавить надо proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
Eldar
+1 за Nginx
Alex
https://www.nginx.com/blog/websocket-nginx/
Andriy
У меня приложение на PHP крутится и оно через NGINX подымается с SSL, а нод сервер крутится через pm2 в процессе
Andriy
Походу тут надо подключать ssl напрямую к ноде
Eldar
Походу тут надо подключать ssl напрямую к ноде
Зачем? Что мешает на Nginx точно так же к ноде вести?
Eldar
По другому домену, другому сертификату (или тому же сертификату)
Sergey
написано же всё
Alex
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04
Andriy
На одном домене?
Cenator 🐈
На одном домене?
Тогда порты или роуты рулить надо
Dmytro
+
Andriy
Тогда порты или роуты рулить надо
Порт у меня 3000, а приложение на 443
Andriy
как я понимаю
Dmytro
ты можешь с помощью роута и nginx настроить
Cenator 🐈
Порт у меня 3000, а приложение на 443
Что у тебя на ноде, а что на пыхе? Самостоятельные сайты или части?
Alex
Тоесть я могу поставить Node рядом с php?
да легко. за этим собственно nginx и нужен. это наверное второй по частоте use-case
Eldar
На одном домене?
Да можешь. Внутри Nginx ты можешь разруливать всякие штуки, типа: :80 :443 /somenodepath - должен вести на Nginx / - и все остальные пути на PHP :3030 - должно вести все пути на GoLang специфичную ручку в блекджеком и хомяками
Eldar
Nginx как пилюля от всего! От проблем и от жизни тоже! (иногда можно выстрелить в ногу)
Dmytro
кстати
Dmytro
интересно почему я использую nginx
Dmytro
а не Apache?
Dmitry
нет
Eldar
а не Apache?
а почему Node.js а не GoLang?
Dmitry
))))
Dmytro
разные задачи решают
Eldar
Холиварная тема
Eldar
Ой да ладно разные
Dmytro
ты же спрашиваешь про меня
Dmitry
вот интересный вопрос, кто-нибудь Nginx Unit уже пользовал с нодой?
Dmytro
вот я тебе и отвечаю)
Eldar
вот я тебе и отвечаю)
Это у тебя вопрос с подвохом был? Типа почему я в жизни свернул не туда? Ну тогда хз, это надо к психологу
Eldar
А так Nginx vs Apache старый холивар
Dmytro
у меня нода эта агрегатор
Dmytro
понял)
Dmitry
эм, не понял
Eldar
Я не знал что есть Nginx Unit ;D
Dmitry
да ладно) с виду очень крутая (легковесная) штука, но нужен положительный опыт
Eldar
Что-то у Nginx продуктов выросло прилично, парни молодцы оО
Dmitry
это да
Eldar
Nginx Plus правда дороговат
Eldar
"Хочешь дешево, ебись сам" (С) Голос рынка
Dmitry
> Full support for Go, PHP, and Python; Java and Node.js support coming soon
Dmitry
так что пока отдыхаем.
Eldar
Ну у них ведь там консультанты по архитектуре, там саппорт наверное это больше чем просто тех поддержка
Eldar
Это настоящие админы
Eldar
Курсы по Nginx кусаются по цене =( Понимание ядра 750$, load balancing 4h course - 350$
Dmitry
у меня админ хороший был, научил всему что сам знает
Andriy
Народ, помогите)
Dmitry
+ сейчас есть docker (docker-compose/swag) они очень хорошо помогают с балансировкой и настройкой
Maksim
Пробегаться по всем данным придется
Maksim
Я БД и собираюсь юзать, но там же я буду сохранять данные как и в джсе
Maksim
Или там можно как-то выдернуть данные за определенный промежуток времени?
Maksim
Щас думаю юдать mongoDB
Pavel
Ребят, а какие недостатки есть у N-layer архитектуры ?
Andriy
ребятя, подскажите пожалуйста. Вот мой конфиг сервера node:
Andriy
var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('/etc/letsencrypt/live/hungryseason.com/privkey.pem'), cert: fs.readFileSync('/etc/letsencrypt/live/hungryseason.com/cert.pem'), ca: fs.readFileSync('/etc/letsencrypt/live/hungryseason.com/chain.pem') }; var app = https.createServer(options); var io = require('socket.io')(app); var Redis = require('ioredis'); var redis = new Redis(); redis.subscribe('App.Chat'); redis.subscribe('App.Chat.Reads'); redis.subscribe('App.Task'); redis.subscribe('App.Task.Changed'); redis.on('message', function(channel, message) { message = JSON.parse(message); if (channel === 'App.Chat') { io.emit(channel + ':message:' + message.receiver_id, message); io.emit(channel + ':message:' + message.creator_id, message); } else if (channel === 'App.Chat.Reads') { io.emit(channel + ':seen:' + message.receiver_id, message); io.emit(channel + ':seen:' + message.creator_id, message); } else if(channel === 'App.Task') { io.emit(channel+':message:'+message.campaign_participant_id,message); } else if(channel === 'App.Task.Changed') { io.emit(channel+':user:'+message.user_id+':task-participant:'+message.task_participant_id+':task:'+message.task_id ,message); } });
Andriy
Andriy
Ошибка в консоли:
сomorsiс
со стороны клиента мб на хттп стучишься
Anonymous
https -> http, тут ошибка
Sergey
Если сайт на https, то запросы слать можно тоже только по https