Главная
   Документация
      Asterisk
      CentOS
      Debian
      Docker
      FreeBSD
      openHAB
      PostgreSQL
      Raspberry Pi
      Ubuntu
      WWW
      Разное




Главная Документация Ubuntu › nodejs + nginx + passenger + ubuntu

node.js, Phusion Passenger и nginx в Ubuntu

Автор:

Статья написана 2018-08-09 19:31:49
Последние правки 2018-09-04 16:18:57

Запускаем node.js приложение при помощи Phusion Passenger, установленного как модуль для nginx в Ubuntu.

  • Исходные данные
    # cat /etc/os-release
    PRETTY_NAME="Ubuntu 16.04.5 LTS"
    

  • Passenger
    Добавляем репозиторий passenger.
    Файл /etc/apt/sources.list.d/passenger.list
    deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main
    
    Добавляем ключ passenger:
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
    
    # apt-get update
    
    Вместо nginx (если установлен, то будет удален) необходимо установить nginx-common
    # apt-get install nginx-common
    
    Устанавливаем
    # apt-get install nginx-extras passenger
    

  • nodejs
    Ставим версию 8. Кому нужна версия 10 - меняем 8 на 10.
    Добавляем в систему ключ:
    # curl -LSs https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
    
    Добавляем репозиторий в файл /etc/apt/sources.list.d/nodejs.list
    deb https://deb.nodesource.com/node_8.x xenial main
    deb-src https://deb.nodesource.com/node_8.x xenial main
    
    # apt-get update
    # apt-get -y install nodejs
    
    проверяем, если /usr/bin/node нет, то делаем симлинк
    # ln -s /usr/bin/nodejs /usr/bin/node
    
    Проверяем:
    # node -v
    v8.11.3
    # npm -v
    5.6.0
    

  • Сайт
    Добавить или найти и раскомментировать в файле /etc/nginx.conf
    http {
      include /etc/nginx/passenger.conf;
    }
    
    Конфиг сайта: /etc/nginx/sites-available/site-nodejs.conf (не забудьте сделать линк в sites-enabled):
    server {
      listen 80;
      server_name site-nodejs.test;
      root /var/www/site-nodejs/public;
    
      try_files $uri @backend;
    
      location @backend {
        passenger_app_root /var/www/site-nodejs;
        passenger_enabled on;
        passenger_app_type node;
        passenger_startup_file test.js;
      }
    }
    
    # systemctl restart nginx
    
    Делаем папки сайта:
    # mkdir -p /var/www/site-nodejs/public
    # mkdir -p /var/www/site-nodejs/tmp
    # chown -R www-data:www-data /var/www/site-nodejs
    
    Пишем в файл /var/www/site-nodejs/test.js :
    var http = require("http");
    function onRequest(request, responce){
            var body = '<html><head></head>'+
            '<body>42</body></html>';
    
            responce.writeHead(200, {"Content-Type" : "text/html"});
            responce.write(body);
            responce.end();
    }
    http.createServer(onRequest).listen(9080);
    


Связанные странички:
Ставим wkhtmltopdf 0.12.4 (with patched qt) на Ubuntu
Raspbian, установка FastCGI для Perl и настройка под nginx
nginx и ssl сертификат с паролем
Docker, установка в Ubuntu
FreeBSD - устанавливаем и настраиваем nginx
Ubuntu1 8.04 : mc has no installation candidate
Получаем SSL сертификаты от Let's Encrypt.
Настраиваем сеть в Ubuntu 18.04
Haproxy - установка и настройка в Ubuntu
Ubuntu, KDE, разблокировка связки ключей.