Работа с процессами

Чтобы просмотреть процессы запущенные в linux нужно выполнить команду

ps aux

Если нужно фильтрация. то можно воспользоваться

ps aux | grep node

где node имя фильтруемого процесса

Чтобы остановить процесс выполнить команду

kill -9 123

где 123 идентификатор процесса (второй слева при выполнении команды ps aux)

Просмотр локальный сайтов на windows

Чтобы просматривать свои сайты на локальной машине (windows) нужно:

1. на windows перейти в каталог C:\Windows\System32\drivers\etc

  • открыть файл hosts
  • добавляем строку 0.0.0.0        host   # 0.0.0.0 — адрес сервера, host — имя хоста в локальной сети

2. на linux машине нужно в файле хоста *.conf прописать ServerName host

Теперь сайты расположенные на виртуальной машине локально из под windows

Запускаем nodejs через nginx

  • Думаю, кому-нибудь будет полезно знать, как запустить проект на Node.js.

     

    Первым делом необходимо установить саму ноду, но об этом я писать не буду, это размусоленно на триллионах сайтов. А вот как поднять проект на русскоязычных сайтах, инфы маловато. Сам я искал инфу на ру сайтах, но в итоге все равно пришлось питаться инфой из-за бугра.

     

    Задача состоит в следующем:

     

    Запустить ноду.

    Писать лог по ошибкам.

    Если сайт падает, надо его поднять.

    Ставим upstart

    sudo apt-get install upstart
    

    Предположим, у вас есть проект site.ru, и расположен он в каталоге

     

    /var/www/nodejs/site/

    Создаем файл /etc/init/site.conf

    #site.conf
    
    description "node.js bin/www"
    
    author      "username"
    
     
    
    start on startup
    
    stop on shutdown
    
     
    
    script
    
    export HOME="/root"
    
     
    
    echo $$ > /var/run/site.pid
    
    exec sudo -u username /usr/local/bin/node /var/www/nodejs/site/bin/www >> /var/log/site.sys.log 2>&1
    
    end script
    
     
    
    pre-start script
    
    # Date format same as (new Date()).toISOString() for consistency
    
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/site.sys.log
    
    end script
    
     
    
    pre-stop script
    
    rm /var/run/site.pid
    
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/site.sys.log
    
    end script
    
    Далее открываем /ect/monit/monitrc
    
     
    
    check process site with pidfile "/var/run/site.pid"
    
    start program = "/sbin/start site"
    
    stop program = "/sbin/stop site"
    
    if failed port 3000 protocol HTTP
    
    request /
    
    with timeout 10 seconds
    
    then restart
    

    Где порт 3000, впишите свой, по умолчанию нода запускается с портом 3000.

     

    Чтобы избавиться от порта в site.ru:3000, правим конфиг nginx /etc/nginx/nginx.conf

     

    server {
    
    server_name site.ru www.site.ru;
    
    listen 37.143.15.183;
    
    charset UTF-8;
    
    set $root_path /var/www/nodejs/site;
    
    location / {
    
    proxy_read_timeout 120s;
    
    proxy_pass http://127.0.0.1:3000;
    
    proxy_set_header Host $host;
    
    proxy_http_version 1.1;
    
    proxy_set_header Upgrade $http_upgrade;
    
    proxy_set_header Connection "upgrade";
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
    
    proxy_pass http://37.143.15.183:81;
    
    proxy_redirect http://37.143.15.183:81/ /;
    
    proxy_set_header Host $host;
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Forwarded-Proto $scheme;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    location @fallback {
    
    proxy_pass http://37.143.15.183:81;
    
    proxy_set_header Host $host;
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Forwarded-Proto $scheme;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    include /usr/local/ispmgr/etc/nginx.inc;
    
    }
    

    Перезапускаем nginx

     

    service nginx restart
    

    Запускаем проект

     

    start site
    
    monit -d 60 -c /etc/monit/monitrc
    

    Открываем site.ru, и если все в порядке, увидите приветствие от Express.

     

    ПС. более подробно можно почитать на забугорном сайте

     

    http://howtonode.org/deploying-node-upstart-monit

nginx + apache

Вначале установил это, но не факт что нужно

sudo apt-get install php5-cli php5-fpm

Далее настройка файла 

location ~* {
 
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $remote_addr;
 proxy_set_header Host $host;
 proxy_pass http://127.0.0.1:8080;

}
location / {
try_files $uri $uri/ @proxy;
 }

HTTP-сервер Hello World

Обычно Node применяется для программирования серверов. В Node очень просто

создавать различные типов серверов. Если вы ранее занимались

программированием серверов, то знаете, что сервер является хостом для

приложения (например, для PH P-приложения хостом является H TTP-сервер

Apache). В Node между сервером и приложением нет никакой разницы.

Вот пример HTTP-сервера, который в ответ на любой запрос выводит сообщение

«Hello World»:

var http = require(‘http’);

http.createServer(function (req, res) {

res.writeHead(200, {‘Content-Type’: ‘text/plain’});

res.end(‘Hello World\n’);

}).listen(3000);

console.log(‘Server running at http://localhost:3000/’);

В ответ на запрос вызывается функция обратного вызова function (req, res) и на

экране появляется ответ «Hello World». Эта модель событий напоминает

прослушивание события onclick в браузере. Поскольку щелчок мышью может

произойти в любой момент, следует воспользоваться функцией, реализующей

нужную для этого случая логику. В Node имеется такая функция, которая

откликается на поступивший в любой момент запрос.

Способ отличия касания стилусом или рукой

Простой способ определения было ли касание рукой или стилусом.

У событие должен быть объект browserEvent или его аналог. В нем должен быть массив targetTouches (https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/targetTouches). У элемента массива должны быть следующие свойства:

  • force — Возвращает количество давления, прикладываемого к поверхности пользователем, как floatмежду 0.0(без давления) и 1.0(максимальное давление)
  • radiusX — Возвращает радиус X эллипса, который наиболее точно описывает область контакта с экраном. Значение находится в пикселах того же масштаба, что и screenX
  • radiusY — Возвращает радиус Y эллипса, который наиболее близко описывает область контакта с экраном. Значение находится в пикселах того же масштаба, что и screenY.

Из тестов было выявлено, что если

if (touch.force > 0.4 || (touch.radiusX > 3.6 && touch.radiusY > 3.6)){
    //касание рукой или нажатие пальцем
}

Настройка ftp

sudo apt-get install vsftpd

mkdir srv
mkdir /srv/ftp
mkdir /srv/ftp/pub
usermod -d /srv/ftp ftp
service vsftpd restart
chown -R user:ftp pub

исправление ошибки с ftp

https://ubuntuforums.org/archive/index.php/t-2109297.html

!!! Внимание. в файле vsftpd.conf нужно раскомментировать параметры отвечающие за безопасность