Установка и настройка домена для сайта Django на VPS

👁 24 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

После того, как проект готов, нужно, чтобы им можно пользоваться через доменное имя второго или третьего уровня project.mydomen.ru или mydomen.ru.

На самом деле, нет разницы какого уровня будет домен. В данном примере условимся, что нам нужен субдомен нашего домена выделить под проект на Django. Если он будет третьего уровня, то надо будет дописать в DNS — редакторе регистратора запись CNAME именем project и www.project со значениями mydomen.ru. 

Пример создания субдомена в DNS в панели регистратора домена
Пример создания субдомена в DNS в панели регистратора домена. Обратите внимание на точку в конце значения.

 

Замечание. Не забываем, что если даже NS — сервера вы добавили к вашему домену регистратора, то это не полностью означает, что этот домен уже будет прикреплен к вашему VPS. Вторым шагом после этого является создание со стороны VPS доменной зоны под этот домен и субдомен. Если домен куплен там же, где VPS, то , в большинстве этот процесс должен быть автоматизирован, но не факт.

Далее у нас может быть несколько случаев развития событий:

  • у нас в системе установлена какая-то готовая панель, на подобие VestaCP, в который уже входит нужный инструментарий;
  • нам нужно ставить все сервисы и пакеты с нуля.

Разберем оба варианта. В случае панели управления покажу как это делать с VestaCP.

Замечание. С установкой Nginx и с работой вспомогательных утилит для стабильной работы проекта Django на продакшн мы уже сталкивались в Деплой проекта Django в продакшн с Nginx + Gunicorn + Supervisor. В данном статье повторим путь с уклоном на понимание процесса прикрепления домена к проекту, если нам не нужен VestaCP.

Установка домена под проект Django, используя VestaCP

VestaCP уже содержит сервер Nginx, который нам будет нужен, чтобы перенаправить все запросы к нашему проекту на Django.

1. Создаем новый WEB- сайт в панели VestaCP

Создание нового WEB-проекта
Создание нового WEB-проекта

2. Редактируем конфигурационный файл Nginx по пути /home/<user>/web/conf/web/project.mydomen.ru.nginx.conf

Меняем содержимое, на подобие ниже и не забываем прописывать данные своего проекта. Порт текущего проекта 8001, если у вас другой — меняем на свой

server {
    #Все обращения на 80-м порту Nginx будет проверять
    #на соответствие нашему субдомену проекта
    listen      IP_ADRESS_OF_MY_VPS:80;
    server_name project.mydomen.ru www.project.mydomen.ru;
    error_log  /var/log/apache2/domains/project.mydomen.ru.error.log error;
	
    #Указываем путь к папке, где будут храниться статические данные сайта
    location /static/ {
        root /home/myprojectenv/project/;#Путь к папке проекта
        expires 30d;
    }
	
    #Указываем IP адрес проекта и порт, на котором он запущен.
    location / {
        proxy_pass      http://IP_ADRESS_OF_MY_VPS:8001;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #Обработка ошибок
    location /error/ {
        alias   /home/admin/web/project.mydomen.ru/document_errors/;
    }

    location @fallback {
        proxy_pass      http://IP_ADRESS_OF_MY_VPS:8001;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/admin/conf/web/nginx.project.mydomen.ru.conf*;
}

 

3. Перезапускаем сервер Nginx в панели VestaCP

Перзапуск сервера Nginx
Перезапуск сервера Nginx

Далее заходим по адресу project.mydomen.ru и убеждаемся, что по нему открывается наш проект на Django.

 

Установка домена под проект Django, используя только Nginx.

Ставим Nginx

sudo apt-get install nginx

Теперь идем и настраиваем Nginx по пути в файле

cd /etc/nginx/sites-available/

открываем файлик default

nano default

и перепишем некоторые моменты, как ниже

server {
    listen 80;
    server_name project.mydomen.ru;
    access_log  /var/log/nginx/example.log;

    location /static/ {
        root /home/myprojectenv/project/;
        expires 30d;
    }

    location / {
        proxy_pass http://IP_ADRESS_OF_MY_VPS:8001; 
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

сохраняем и выходим.

Выполняем перезапуск Nginx, чтобы изменения вступили в силу

sudo service nginx restart

Заходим по адресу project.mydomen.ru и проверяем. Если не сработало, то читаем статью, которая тесно с этим пунктом связана.

Увеличиваем время соединения по протоколу SSH

👁 27 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Иногда необходимо долго ждать установку или выполнение какого-то пакета или скрипта и время таймаута соединения по умолчанию не хватает и соединение может прерваться в середине процессе. Это делается очень просто прописыванием 3-х параметров в файле /etc/ssh/sshd_config

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60

 

Данные параметры уже есть в данном файле, их, просто, нужно раскоментировать и прописать против них новые значения на увеличение времени таймаута соединения SSH.

TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в моем примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения данных параметров перезапускаем сервис ssh

sudo service ssh restart

Установка Python 3.6 и настройка виртуальных сред на Ubuntu 18

👁 75 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Установка и работа с virtualenv

Обновляем систему

sudo apt-get update

Ставим Python 3.6 из коробки

apt install python3.6

Теперь, если удачно установилось, то можем проверить версию и место утсновки

python3.6 -v
whereis python3.6
which python3.6

Делаем алиас-ссылку, чтобы Python 3.6 запускался через команду python

alias python=python3.6

Замечание. Команда добавления алиаса выше в идеале должна создать равносильную ссылку команды python с python3. Но, вероятно, что он может не сработать и тогда придется вручную править файл .bashrc

nano ~/.bashrc

и добавляем туда линк

alias python=python3

Файл .bashrc предназначен для задания псевдонимов команд и функций, используемых пользователями оболочки bash.

Ставим пакетный менеджер для Python 3

sudo apt-get install python3-pip

Ставим инструмент виртуальных сред

sudo pip3 install virtualenv

 

Замечание. Если вы используете Python 3.3 или выше, то venv модуль уже включен в стандартную библиотеку Python. Он также, как и virtualenv может создавать и управлять виртулаьными средами, но он поддерживается только в версиях Python 3.x

Создаем среду, активируем и работаем

virtualenv myenv
cd myenv
source bin/acivate

Для деактивации и выхода из текущей виртуальной среды выполняем привычную команду

deactivate

 

Можно обойтись одним лишь базовым инструментом virtualenv для работы с виртуальными средами в Python, но помимо его базовых функций есть возможность использовать расширяющий возможности инструмент под названием virtualenvwrapper, с которым познакомимся ниже.

Установка и работа с virtualenvwrapper

virtualenvwrapper — это набор расширений для virtualenv с дополнительным инструментарием. Расширение включают в себя оболочку для создания и удаления виртуальных сред и, в противном случае, управление рабочим процессом разработки, что упрощает работу над несколькими проектами одновременно без введения конфликтов в их зависимости.

Установка virtualenvwrapper

pip install virtualenvwrapper

Смотрим, где находится virtualenvwrapper.sh

which virtualenvwrapper.sh

Данная команда выведет информацию о пути нахождения типа /usr/local/bin/virtualenvwrapper.sh. Теперь нужно добавить некоторую информацию в конце нашего файла ~ / .bashrc

sudo nano ~/.bashrc

Добавляем в конец

# where to store our virtual envs
export WORKON_HOME=$HOME/virtenvs
# where projects will reside
export PROJECT_HOME=$HOME/Projects-Active
# where is the virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper.sh

Сохраним изменения

source ~/.bashrc

Проверяем, что все установилось

workon

Это выведет пустую строку, что будет означать успешность работы

Базовые операции virtualenvwrapper

Создаем виртуальную среду

mkvirtualenv myenv

Если нужно создать сразу с рабочей папкой

mkproject myenv

Можем узнать сколько виртуальных окружений

workon

Для переключения просто набираем

workon myenv

Для выхода

deactiavate

Для удаления виртуального окружения

rmvirtualenv

 

Базовый набор команд для работы в консоли Linux/Ubuntu

👁 150 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

 

В данном посте приведен минимальный базовый список команд для уверенной работы в командной строке Linux/Ubuntu.

Порядок выполнения команд в Ubuntu

В консоли Ubuntu несколько команд можно комбинировать и создавать условия выполнения, в заивисмости от итога выполнения предыдущей команды.

Безусловное последовательное выполнение — это когда одна за другой выполняются команды в той последовательности, в которой они записаны. Например, мы хотим выполнить сначала одну команду. Затем, когда она отработает (вернет управление в командную строку), нам нужно запустить вторую команду. Для этого служит символ точка с запятой ;. Таким образом, если вы выполните в терминале:

mycommand1; mycommand2; mycommand3

то сначала запустится первая команда mycommand1, а когда управление вернется в терминал, то запустится вторая и так далее.

Зависимое выполнение команд через оператор && — это означает, что команда mycommand2 будет выполнена только в том случае, если команда mycommand1 была выполнена успешно. Каждая следующая команда выполняется только при успешном выполнении предыдущей. К примеру:

mycommand1 && mycommand2 && mycommand3

Зависимое выполнение команд через оператор || — это означает, что команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку. К примеру:

mycommand1 || mycommand2 || mycommand3

то команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку.

reboot — перезагрузка операционной системы через консоль

Перезагружает систему через консоль. Форма записи обычная:

reboot

apt-get — управление приложениями через менеджер пакетов Ubuntu

apt-get позволяет устанавливать, обновлять, удалять приложения и пакетами ОС Ubuntu. Форма записи:

sudo apt-get install[uninstall, update] <package_name>

Очень полезно обновлять информации о доступных пакетов через команду:

sudo apt-get update

Зачастую, apt-get может и не установить какой-то пакет из репозитория, если мы не выполним обновление информации.

whoami — выводит логин текущего пользователя

Выводит имя пользователя, который на данный момент работает в консоли. Форма записи:

whoami

aptitude — более совершенная версия команды apt-get

Это более совершенный менеджер пакетов. В частности, позволяет очень эффективно обновлять пакеты, сохраняя все зависимости:

sudo aptitude safe-upgrade

bash — команды оболочки командной строки Ubuntu

Это команды, который позволяют работать со средой окружения. К прими, на основе их можно написать целые скрипты с расширением *.sh и выполнять их:

bash myscript.sh

Есть переменные среды окружения Ubuntu, в которых система хранит те или иные данные. К примеру, командой echo можно вывести данные, хранящиеся в переменных $USER, $HOME, $PATH:

echo $USER[$HOME, $PATH]

Очень важно упомянуть в данном контексте 3 важных скрытых файла оболочки bash в корневой директории root:

  • .bashrc
  • .bash_profile
  • .profile

Данные файлы загружаются при каждом начале сессии загрузки командной строки или системы Ubuntu. Это файлы настроек начальной загрузки сессии пользователя и внутри них прописаны сценарии начальной загрузки системы.

ls — вывод списка всех файлов и директорий в указанном пути

Выводит весь список файлов и папок в определенной директории, которую мы укажем. Форма записи:

ls /dir/name

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

Чтобы показать и скрытые файлы нужно вывести через набор команды и ключа -a:

ls -a

К примеру, для вывода полной информации с правами доступа, владельцами и со скрытыми папками и файлами можно набрать комбинацию этой команды с ключами в виде:

ls -la /dir/name

mkdir — создание папки или директории по указанному пути

Позволяет создавать папку через командную строку в Ubuntu. Если требуется создавать вложенные папки, то они разделяются через прямой слэш (/):

mkdir my/new/dir

pwd — показывает текущую директорию, где находится пользователь

Форма записи:

pwd

Тоже самое можно увидеть, если вывести это через системную переменную $PWD, в котором Ubuntu этот путь и хранит:

echo $PWD

cd — команда перехода по папкам и директориям

Позволяет пользователю перемещаться по разделам и директориям системы. К примеру, для перехода на один уровень выше нужно выполнить:

cd ../

Для перехода в какую-то директорию в пределах текущей директории нужно выполнить:

cd ./folder/name

или

cd folder/name

а если хотим из текущей директории перейти сразу в какой-нибудь параллельный раздел, то надо указать абсолютный путь с указанием / в начале пути:

cd /usr/bin

cp — команда копирования файлов и папок в Ubuntu

Позволяет копировать указанный файл, принимаемый первым параметром в виде файла, указанный вторым параметром:

cp filename.txt filename_copy.txt

Если мы хотим копировать папки с содержимым, то надо еще указать ключ реверсного копирования -r:

cp -r foldername foldername_copy

mv — перемещение или переименование папки из одного в другое место(имя)

Суть переименования и перемещения в среде программирования  — идентичные операции, поэтому эта команда служит для двоякого использования:

mv dirname new_dirname

или мы можем переместить:

mv dirname folder/dirname

если хотим переместить файл, то надо первым параметром указать имя файла, а вторым — путь, по которому он будет перемещен:

mv filename.txt folder/path/

rm — удаление файлов и папок в Ubuntu

Данная команда позволяет удалять файлы и папки, передаваемые первым параметром:

rm filename.txt

а если хотим удалить папку и его содержимое, то надо указать ключ рекурсивности -rf:

rm -rf foldername

если хотим удалить только все содержимое папки, без самой папки, то надо после слэша написать выражение *:

rm foldername/*

nano/vi/…  — редактирование файлов в Ubuntu

На самом деле по умолчанию в Ubuntu нет встроенной команды редактирования и для этого надо будет установить любой из доступных редакторов через пакетный менеджер. Есть такие популярные редакторы, как nano/ vi/vim/ joe и т.д.

netstat — команда вывода на консоль информации о состоянии TCP соединения процессов

Одна из полезных комбинаций данной команды — это вывод информации о запущенных процессах, занимаемых ими портов и адресов сети:

netstat --tcp --listening --program

Еще одна полезна комбинация — это вывод всех занятых процессами портов:

netstat -ntlp | grep LISTEN

kill — убивает тот или иной процесс по ID или по PID

Чтобы убить процесс по PID:

kill PID

чтобы убить процесс принудительно по PID добавляем ключ -9:

kill -9 PID

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

Одна из полезных комбинаций данной команды — вывод процессов, которые занимают тот или иной порт:

lsof -Pni :3306

К примеру, какой-то процесс занял нужный нам порт и нам нужно узнать его PID и принудительно освободить этот порт и для этого можно набрать:

lsof -i tcp:3000
kill -9 PID

 

Работа через менеджер версий Node.js (NVM)

👁 155 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Что такое NVM?

NVM(Node Version Manager) — это простой bash — скрипт, который позволяет упралять(устанавливать, обновлять, активировать, удалять) разные версии Node.js на одной машине так, что они выполняются в изолированных друг от друга средах. Таким образом, можно работать с разными версиями одного программного обеспечения не задевая или разрушая их модульные зависимости.

Почему NVM?

В любой момент вы захотите работать с различными проектами, используя различные версии Node.js и NVM позволяет устанавливать разные версии для различных проектов. NVM позволяет работать  с разными версиями посредством сессий, при котором каждая сессия соответствует версии Node.js.

Установка NVM

Установка на Linux/Ubuntu очень легко делается, сначала надо будет скачать через ссылку, указав версию(на момент написания версия была v0.33.8 и это можно проверить по ссылке на официальном репозитории).

Скачка через curl:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

или через wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Возможно, что после установки вам придется закрыть и еще раз открыть консоль, но в большинстве этого не требуется.

Скрипт клонирует репозиторий nvm в директорию  ~/.nvm и добавляет исходные строки в наш профиль в виде:   ~/.bash_profile~/.zshrc~/.profile или ~/.bashrc

Установка Node.js используя NVM

Давайте рассмотрим процесс установки Node.js через NVM и это легко. Перед тем, как установить Node.js, нам необходимо узнать какие версии на данный момент доступны для загрузки и установки и для этой проверки есть команда:

nvm ls-remote

Если в списке есть желаемая версия, то ее можно установить через команду с указанием этой версии:

nvm install 5.0

И потом можно менять оболочки(сессии) использования версии через команду:

nvm use 5.0

Использование NVM

Чтобы посмотреть список установленных версий Node.js можно набрать команду:

nvm ls

И если мы в большинстве используем определенную версию Node.js, то можем установить ее по умолчанию:

nvm alias default 5.0

И все это дело можно гибко настраивать, создавая файл .nvmrc в корневой директории проекта с указанием необходимых данных версии Node.js для запуска проекта.

 

Заключение

Управление версиями на одной машине — это ключевая задача, но утомительная. Задачи должны быть автоматизированы и для этого и создавался NVM, который помогает нам управлять различными версиями Node.js без труда. Дополнительно про возможности NVM можно почитать на официальной странице репозитория.

 

Установка, апгрейд и переустановка Node.js на Ubuntu

👁 341 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Введение

Node.js — это JavaScript платформа для общего назначения, которая позволяет пользователям быстро построить сетевые программы. На этой платформе при помощи JavaScript достигается цель построения как фронтенд, так и бэкэнд.

В данном гайде показывается несколько способов установки Node.js на Ubuntu 16.04 сервер.

Требования

В этом руководстве предполагается, что вы используете Ubuntu 16.04. Прежде чем начать, вы должны иметь учетную запись пользователя без полномочий root с привилегиями sudo, установленными в вашей системе.

Установка стабильной версии(Distro-Stable) Node.js на Ubuntu

Ubuntu 16.04 содержит версию Node.js в своих репозиториях по умолчанию, которые могут быть использованы для обеспечения последовательного взаимодействия с несколькими системами. На момент написания статьи версия в репозиториях — v4.2.6. Это будет не последняя версия, но она должна быть довольно стабильной и должна быть достаточной для быстрого экспериментирования с языком, но, возможно, что эта версия нам не подойдет, если требуется использоваться современные фишки или функции Node.js.

Чтобы получить эту версию, нам просто нужно использовать диспетчер пакетов apt. Сначала мы должны обновить наш локальный индекс пакета, а затем установить из репозиториев:

sudo apt-get update
sudo apt-get install nodejs

Если данная версия пакета Node.js в репозиториях Ubuntu соответствует вашим потребностям, то это все, что вам нужно сделать для установки. В большинстве случаев вы также захотите установить npm, который является менеджером пакетов Node.js. Вы можете сделать это, набрав:

sudo apt-get install npm

Этот менеджер позволит нам легко устанавливать модули и пакеты для использования с Node.js.

Из-за конфликта с другим пакетом исполняемый файл из репозиториев Ubuntu называется nodejs вместо node. Помните об этом при запуске операций сервера.

Но, если мы хотим, чтобы  команда nodejs была запущена и через команду node, надо будет сделать символическую ссылку. И есть несколько методов это сделать:

  • Вам нужно вручную создать символическую ссылку /usr/bin/node. Ярлык для совместимых с bash оболочек:
sudo ln -s `which nodejs` /usr/bin/node
  • Или, если вы используете нестандартные оболочки, просто скопируйте путь, который вы найдете по команде which nodejs:
sudo ln -s /usr/bin/nodejs /usr/bin/node
  • Возможно, что вышеизложенные оба метода могут вызвать конфликты имен, когда ссылаем команду node на nodejs. И для решения этого есть третий способ:
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

Это первый и, думаю, самый легкий способ установки Node.js на Ubuntu 16.04, но не самый гибкий, если, к примеру, мы хотим установить другую версию, а не Distro-Stable, которая валяется в репозиториях Ubuntu давненько.

 

 

Установка Node.js на Ubuntu 16.04, используя PPA

Данный метод позволяет установить Node.js, используя более гибкий порядок. Это позволяет выбрать ту версию, которая подходит для нашего проекта. Это очень важно, если в проекте будут использоваться последние функции Node.js или пакеты, которые не поддерживают работу в Node.js старой версии.

Но есть вероятность, что самая последняя версия Node.js может не работать в Ubuntu нашей версии, поэтому надо это учитывать и не пытаться устанавливать нестабильную или самую последнюю версию.

Данный метод, который может помочь нам получить более новую версию Node.js, является добавление из PPA (Personal Package Archive, Персональный Пакетный Архив), поддерживаемый NodeSource. Отсюда можно подгрузить более современную версию Node.js, чем официальные репозитории Ubuntu, и позволяет нам выбирать между Node.js v4.x (более старая долгосрочная версия поддержки, поддерживаемая до апреля 2017 года), v6. x (более поздняя версия LTS, которая будет поддерживаться до апреля 2018 года) и Node.js v7.x (текущая, активно развиваемая версия).

Во-первых, вам нужно установить PPA, чтобы получить доступ к его содержимому. Для этого необходимо убедиться, что мы находимся в своем домашней директории и используем curl, чтобы подгрузить скрипт установки для нашей предпочтительной версии. Ниже мы сейчас устанавливаем версию 7.x:

cd ~
curl -sL https://deb.nodesource.com/setup_7.x -o nodesource_setup.sh

Мы можем проверить содержимое этого скрипта с помощью команды редактирования текстового документа nano (или вашего предпочтительного текстового редактора):

nano nodesource_setup.sh

Скрипт установки Node.js надо запустить под sudo:

sudo bash nodesource_setup.sh

PPA будет добавлен в нашу конфигурацию, и наш локальный кеш пакетов Ubuntu будет обновлен автоматически. После запуска скрипта установки из nodeource мы можем установить пакет Node.js таким же образом, как мы это делали в первом случае:

sudo apt-get install nodejs

Пакет nodejs содержит бинарный файл nodejs, а также менеджер пакетов npm, так что нам не нужно устанавливать npm отдельно. Однако для того, чтобы некоторые npm пакеты работали (например, те, которые требуют компиляции кода из исходного кода), нам необходимо установить пакет build-essential:

curl — это инструмент для загрузки или передачи файлов или данных с сервера или на сервер с использованием FTP, HTTP, HTTPS, SCP, SFTP, SMB и других поддерживаемых протоколов в Linux или Unix-подобной системе. Можно легко установить и использовать команду curl на Ubuntu Linux, используя команду apt или команду apt-get, чтобы использовать curl. Для установки данного инструмента необходимо выполнить команду

sudo apt install curl

 

 

Установка Node.js на Ubuntu, используя NVM

Альтернативой установке Node.js через apt и PPA является использование специально разработанного инструмента, называемого nvm «Node.js version manager»(Менеджер Версий Node.js).

Используя nvm, мы можем установить несколько автономных версий Node.js, которые позволят нам легче управлять своей средой. Он предоставит вам доступ по требованию к новейшим версиям Node.js, но также позволит вам настроить таргетинг на предыдущие версии, от которых зависит ваше приложение.

Для начала нам нужно будет получить пакеты программного обеспечения из наших репозиториев Ubuntu, которые позволят нам создавать исходные пакеты. Скрипт nvm будет использовать эти инструменты для создания необходимых компонентов:

sudo apt-get update
sudo apt-get install build-essential libssl-dev

После установки пакетов необходимых условий мы можем загрузить сценарий установки nvm со страницы проекта GitHub . Номер версии может отличаться, но в целом мы можем скачать этот скрипт установки при помощью curl:

curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh

После скачки мы можем проверить скрипт установки при помощи команды редактирования nano:

nano install_nvm.sh

После проверки, если все нормально, запускаем этот скрипт при помощи команды bash:

bash install_nvm.sh

Команда выше установит необходимые инструменты для работы в подкаталог нашего домашнего каталога ~/.nvm. Он также добавит необходимые строки в файл ~/.profile для работы.

Чтобы получить доступ к функциям nvm, нам нужно будет снова выйти и снова войти в систему или можно выполнить команду ниже, чтобы текущая сессия узнала об изменениях:

source ~/.profile

Теперь, когда мы установили nvm, мы можем установить изолированные версии Node.js.

Чтобы узнать версии Node.js, доступные для установки, мы можем ввести:

nvm ls-remote

Это выведет весь список возможных к установке версий Node.js

Output
...
v5.8.0
v5.9.0
v5.9.1
v5.10.0
v5.10.1
v5.11.0
v6.0.0
v7.0.0

Как вы можете видеть, самая новая версия на момент написания этой статьи — v7.0.0. Мы можем установить его, набрав:

nvm install 7.0.0

Обычно, nvm переключается на использование последней установленной версии. Мы можем явно сообщить nvm, чтобы использовать ту версию, которую мы только что загрузили, набрав:

nvm use 7.0.0

Когда мы устанавливаем Node.js с помощью nvm, вызывается исполняемый файл node. Мы можем увидеть версию, которая в настоящее время используется оболочкой, набрав:

node -v

Это выведет что-то на подобие:

Output
v7.0.0

Если у нас несколько версий Node.js, мы можем увидеть, что установлено, набрав:

nvm ls

Если мы хотим по умолчанию использовать одну из версий, мы можете ввести команду:

nvm alias default 7.0.0

Эта версия будет автоматически выбрана при появлении нового сеанса. Мы также можем ссылаться на псевдоним следующим образом:

nvm use default

Каждая версия Node.js будет отслеживать свои собственные пакеты и иметь npm возможность управлять ими.

Мы можем с помощью npm установить пакеты в ./node_modules каталог проекта Node.js, используя обычный формат. Например, для express — модуля:

npm install express

Если мы хотим установить его глобально (чтобы сделать его доступным для других проектов с использованием той же версии Node.js), мы можете добавить флаг -g:

npm install -g express

Это установит пакет в ~/.nvm/node_version/lib/node_modules/package_name.

Установка в глобальном масштабе позволит нам запускать команды из командной строки, но нам нужно будет связать пакет с нашей локальной сессией, чтобы вызвать его из программы:

npm link express

Мы можем узнать больше о доступных нам параметрах с help из nvm, набрав:

nvm help

 

Апгрейд Node.js через удаление и переустановку новой версии

Для того, чтобы установить новую версии, можно воспользоваться одним из вышеизложенных способов, но, сначала необходимо удалить ткущую версию. Это актуально, если установка происходила первым и вторым способами, описанные в данной статье. Поэтому, для полного удаления выполняем следующий список операций:

sudo apt-get purge nodejs
sudo apt-get autoremove

Есть и более легкий способ, который заменяет эти команды:

sudo apt-get purge --auto-remove nodejs

 

Заключение

Как вы можете видеть, есть несколько способов начать работу с Node.js на вашем сервере Ubuntu 16.04. Ваши обстоятельства будут определять, какой из вышеуказанных методов является наилучшей идеей для ваших обстоятельств. Хотя упакованная версия в репозитории Ubuntu является самым простым методом, но метод nvm определенно намного более гибкий.

Время таймаута SSH — соединения

👁 162 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Проблема возникла из-за необходимости поддерживать достаточно много времени процесса соединения с сервером Linux, чтобы каждый раз не соединяться и каждый раз не вводит монотонные строки входа в папку проекта на сервере. Для настройки. Настроить нужно, как серверную часть, так и клиентскую, если к примеру соединение производится через PuTTY или через встроенный терминал в рабочем IDE. У меня была проблема последнего характера.

Настройка серверной части

Проблема изначально заключалась в следующем — при подключении к серверу по SSH сессия обрывалась достаточно быстро, задачу можно было решить увеличив интервал таймаута. Соотвествующие настройки можно произвести отредактировав файл sshd_config расположенный в директории /etc/ssh/sshd_config.

В данном файле необходимо найти несколько параметров, которые отвечают за данную опцию:

  • TCPKeepAlive — определяет поддержку соединение в активном состоянии, для этого используются специальные контрольные сообщения, посылаемые с определенным интервалом времени. Если директива установлена, обрыв соединения будет вовремя замечен, а соответствующий процесс будет убит. Возможные значения «yes», «no».
  • ClientAliveInterval — время простоя клиента в секундах, после которого демон sshd отправляет через защищённый канал запрос клиенту. Директива работает только для протокола 2. По-умолчанию установлен в 0, т.е. клиенту вообще не будут направляться такие запросы.
  • ClientAliveCountMax — количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс. Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает. СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения. Если ClientAliveInterval равно 15 секундам, а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH, будут отключаться приблизительно через 45 секунд. Параметр работает только для протокола версии 2. По-умолчанию установлено значение 3.

В нашем случае установим данные параметры следующим образом:

TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 180

После этого перезапускаем сервис SSHD

service sshd restart

Это соответствует тому, что TCPKeepAlive проверяет находится ли клиент на линии сервера, ClientAliveInterval —  это время простоя в секундах, после которого демон sshd отправляет запрос клиенту, ClientAliveCountMax указывает количество проверок доступности клиента, выше в примере указана поддержка соединения в течении 3 часов (180 минут).

Настройка таймаута соединения в SSH — клиенте PuTTY

В самом клиенте PuTTy также желательно произвести нехитрые настройки. Для этого идем в секцию «Connecton» и выставляем параметр «Seconds between keepalives» равным 60 секундам. Так же можно отметить опцию «Enable TCP keepalives»

Настройка таймаута соединения в WinSCP

Открываем менеджер соединений WinSCP и клацаем на нужное соединением, после жмем на кнопку «Еще»Далее, в открывшемся окне, в ветке «Подключение» указываем необходимое время для таймаута

 

Как это сделать в своем рабочем IDE

Зависит от IDE, в любом случае в параметрах и настройках в разделе SSH — соединения. В моем случае проблема была с таймаутом соединения терминала IDE NetBeans. Может и есть, где настраивается время, но я не нашел данный параметр в среде, но проблема исчезла после увеличения таймаута со стороны сервера, так что проблемы с клиентом нет.