Servidores da Web
Node.JS
pode ser usado como um servidor de substituição no Pi e você pode criar aplicativos da Web independentes ou de página única com facilidade.
Mas apenas para sua informação, na maioria dos aplicativos do mundo real, é recomendável usar servidores como o moderno nginx
, leve lighttpd
ou o robusto, mas com todos os recursos apache2
! E, em seguida, faça o script node.js para complementar o site.
Obviamente, as possibilidades são infinitas e tudo depende do que você deseja alcançar.
Raspberry Pi?
O Raspberry Pi pode executar qualquer um desses servidores da web. Ele também pode executar o Node sem complicações sérias e é muito rápido sem nenhum ajuste complicado.
O Raspberry Pi é muito capaz, mas o melhor seria transformar a divisão da memória em menos gráficos e mais RAM. Esqueça o uso de um IDE e faça tudo via SSH. Se você realmente precisar de mais suco, coloque um dissipador de calor no chip BCM e faça o overclock quando se sentir seguro. Outra opção seria usar vários Pi's como um cluster para ajudar no balanceamento de carga. Você pode começar a pesquisar por aqui sobre cluster.
Mas você realmente precisa usar o node.js?
Node.JS
foi projetado para ser usado quando você inicia (ou antecipa) a obtenção de centenas e milhares de solicitações que exigem que pequenos pedaços de dados sejam armazenados no banco de dados, armazenados em cache ou lidos com sobrecarga mínima do servidor. Então, você o dirige usando JS no cliente, mas Node.JS
na verdade é conduzido por C / C ++. Então, o que acontece se você precisar de um módulo personalizado ou de uma alteração específica no código base?
Em um aplicativo que exibe páginas da web, o node.js geralmente não supera o apache, por exemplo, em solicitações únicas. O recurso sem bloqueio do node.js é ótimo se você tiver milhares de solicitações por segundo durante a maior parte do dia; é aqui que o apache bloqueará e trava.
Um exemplo do mundo real
Ebay - Durante um leilão, quando você tem uma contagem regressiva dos últimos 30 segundos. Você pode ter várias pessoas que costumavam atualizar a página vigorosamente e aumentar os lances. É aqui que o node.js brilha, porque hoje você NÃO precisa mais atualizar. Isso ocorre porque o JS ajaxes para node.js com muita frequência (300ms ~ 600ms) de todos os clientes e é capaz de fornecer uma experiência de "leilão na vida real". O Ebay não roda apenas fora do node.js, mas em farms de servidores com balanceamento de carga muito complexos.
Para criar e instalar o Node.js no Pi *:
Obviamente, não há nada errado em usar o node.js em vez de outros e qual a melhor forma de aprender o nó, se não em um pequeno dispositivo como o Pi. Então você pode compilar o código você mesmo assim.
$ sudo apt-get install git-core build-essential libssl-dev
$ mkdir ~/nodeDL && cd ~/nodeDL
$ git clone https://github.com/joyent/node.git
$ git checkout v0.6.15 (to checkout the most recent stable version at time of writing)
update: versões posteriores do nó (a versão atual é v0.8.18) podem ser construídas sem as etapas especiais abaixo
Em seguida, precisamos dizer ao compilador para usar a armv6
arquitetura para a compilação:
$ export CCFLAGS='-march=armv6'
$ export CXXFLAGS='-march=armv6'
and then edit deps/v8/SConstruct around the line 82 mark, to add “-march=armv6”:
'all': {
'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv6'],
'CXXFLAGS': ['-fno-rtti', '-fno-exceptions', '-march=armv6'],
},
Em seguida, comente as linhas começando na marca 157, para remover as partes vfp3 e simulador. Como este é um JSON-como objeto, lembre-se de remover a vírgula na CPPDEFINES
linha!
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
Em seguida, o processo habitual de configuração, fabricação, instalação, NB, eu tive que especificar manualmente o local do libpath do OpenSSL:
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
É isso, agora você deve ter uma instalação do Node.JS funcionando!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
* Referências e artigo original
Mas, como indicado em outras respostas, você pode simplesmente baixar o binário pré-compilado que funcionará.
Conclusões
Um bom pedaço de Pi não é ruim. Você pode executar praticamente qualquer coisa no Pi- Só não espere um desempenho no nível de produção.