bootd
@bootd
Гугли и ты откроешь врата знаний!

PHP + node.js + nuxt.js, как всё правильно настроить?

Доброе утро, ребята!

Делаем с корешем интернет магазин, опыта ради опробовать новый стек технологий. Как мы собрались делать!!

Сделать хотим SPA на Nuxt.js. Нода будет отвечать за фронт, php за API. Зачем нода + php? Ответ такой, SSR(сервер сайд рендеринг)! + Мой друг знает только php. Т.к. nuxt.js уже включает в себя SSR. Вот офф. репа. То вопрос с настройкой ноды как бы решён. Хотелось бы узнать, более менее в подробностях, что для всего этого нужно!

Мы искали материалы в интернете, но всё очень расплывчато. Из того, что узнали и поняли. Нужен отдельный сервер, nginx + php + node.js и как-то это всё настроить. Выходит так. Пользователь посылает запрос, нода его принимает, идёт к php, php к ней с результатом, а нода отдаёт мне.

Но пока вообще не понимаем, с чего начать и правильно ли мы мыслим. Был бы очень признателен, если кто-то максимально подробно опишет, реализацию такой связки и нужна ли она вообще такой, какой я её описал. И что для всего этого будет нужно.

P.S. Для меня серверная часть в плане настройки тёмный лес.
  • Вопрос задан
  • 3886 просмотров
Пригласить эксперта
Ответы на вопрос 3
Человек, который знает PHP, пилит RESTful API, ему пофигу откуда ты будешь брать данные, с фронта или из Ноды во время серверного рендера. Более того, тебе должно быть пофигу на одном физическом сервере находится API на PHP и твоя нода или нет, на этапе разработки не заморачивайтесь кто вам будет отдавать Апач или Нгинкс, и на одном сервере вы будете находиться или нет, рассматривайте свое приложение как связку RESTful сервера на PHP и универсального приложения на node.js + Javascript, которое работает с API
Если твой напарник задокументирует свое АПИ в чем то вроде https://swagger.io/ , тебе легче будет делать интеграционные тесты и возможно даже генератор моделей под свой фреймвок найдешь
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Советую взять ReactJs, VUI для морды ( делайте все по феншую как доке ) ( тут ваши знания пригодятся)
PHP для админки быстро и REST ( да и друг скучать не будет)

Если вы не уверены в старте то лучше будет взять и все cделать на php7.1+ ( это будет быстрей и дешевле)
Выстрелило поползли вверх переписываем бекенд rest на более производительный ЯП. Nodejs, Go.

Если всетеки не убедил:
у меня базовый набор (никаких експресов фреймворков( толку ноль) )
https://www.npmjs.com/package/router -- роутер
https://www.npmjs.com/package/request-- curl
https://www.npmjs.com/package/mysql -- и ежу понятно ( кстати эта штука работает быстрей чем в php)
https://www.npmjs.com/package/async -- не люблю промисы медленные на больших итерациях проигрывают колбек реализации в 2 раза.
https://www.npmjs.com/package/ejs -- шаблонизатор
запускаем приложение через pm2
настройка только ngnix
для nodejs нужно делать проксирование через upstream
берем отдельный субдомен или на конкретный урл
upstream app_node {
	ip_hash;
	server 127.0.0.1:3000 weight=5;
	# ...
}

server {
# ...
location / ( можно дополнить урл и ноде будеи обрабатыватся только с этого урла /rest/*) {
   proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $http_host;
		proxy_set_header X-NginX-Proxy true;
		proxy_pass http://app_node;
		proxy_redirect off;
}


для PHP FPM все просто.
location / {
       try_files $uri $uri/ /index.php?$query_string;
   }

   location ~ \.php$ {
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
Ответ написан
Зачем в этой схеме пхп
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы