Настройка инструментальной среды Vue-Yarn-PM2
Примечание Локальная среда — Mac, а серверная среда — Centos 7.x.
местная среда
nvm node git pm2 yarn
Первая установка
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
установить нвм
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
затем используйте
command -v nvm
Перезапустите терминал, чтобы просмотреть версию
nvm -v
Просмотр устанавливаемых версий узла
nvm ls-remote
Установите последнюю версию Node.
nvm install v10.6.0
nvm alias default v10.6.0
установить git
Зайди на этот сайт скачай, а потом без мозгов переходи к следующему шагу
https://git-scm.com/
После завершения установки сначала настраивается git
git config --global user.name "mhkz"
git config --global user.email 'iquanku@163.com'
сгенерировать ssh-ключ
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
При генерации ключа вам будет предложено создать пароль, не волнуйтесь, просто нажмите Enter до упора, и нажмите Enter три раза.
Затем добавьте сгенерированный открытый ключ в github, чтобы не вводить пароль каждый раз при отправке. использовать
cat ~/.ssh/id_rsa.pub
Скопируйте полученную строку целиком, затем вставьте ее в ключи SSH и GKG в Настройках, название напишите как хотите, а отличить сможете сами
Создайте новый репозиторий на github и скопируйте адрес репозитория
Создать новый репозиторий локально
git init
git add README.md
git commit -m "initial commit"
git remote add origin https://github.com/mhkz/project.git
git push -u origin master
ok Локальный проект сгенерирован и загружен на github
Установите инструмент развертывания pm2
npm install pm2 -g
Просмотр включенных служб узла
pm2 list
серверная среда
Среда сервера более сложная, нужны не только все вышеперечисленные шаги, но и обратный прокси-сервер Nginx и вход без пароля SSH, иначе нам нужно будет вводить пароль каждый раз при развертывании, это будет слишком хлопотно.
yarn nvm node pm2 git nginx
Первые четыре шага установки аналогичны способам установки под Mac и подробно описываться не будут.
Теперь сосредоточьтесь на установке Nginx и настройках прокси.
Nginx
Существует два метода установки Nginx под Centos7, первый — установка исходного кода, а второй — установка yum.Здесь мы используем первый метод, установка исходного кода.
- скачать и разархивировать
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
- Перейдите в разархивированную папку для компиляции
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre
- компилировать
make && make install
- запускать
cd /usr/local/nginx/sbin
./nginx
- закрытие
./nginx -s stop
Прокси порта nginx и указание имени домена
Войдите в каталог conf и создайте в нем включаемый файл. Войдите в каталог conf/include, создайте файл nginx.node.conf и введите в него следующий код:
upstream nodejs {
server 127.0.0.1:3000;
keepalive 64;
}
server {
listen 80;
server_name p.iquanku.com 47.95.7.29;
location / {
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_set_header Connection "";
proxy_pass http://nodejs;
}
}
Введите conf, откройте nginx.conf и добавьте в http.
include ./include/*
Перезапустите nginx, введите
nginx -c conf/nginx.conf
- Создайте новый проект с помощью Node и запустите его. Создайте файл server.js в любом месте на сервере.
vim server.js
Вставьте в него пример официального сайта Node.
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('您好, 我是 大白--------');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Начните с pm2
pm2 server.js start
Введите p.iquanku.com или доменное имя сервера в браузере, и вы увидите возвращенное «Здравствуйте, я Дабай-------».
上面所有内容告一段落,接下来配置自动化仓库来部署项目
Сначала остановите все проекты Node на сервере.
pm2 kill
pm2 list
Настроить вход без пароля на сервер
войти в локальный терминал
ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.95.7.29
Перезапустите консоль, чтобы напрямую подключиться к серверу без ввода пароля.
ssh root@47.95.7.29
Создайте два файла в проекте, который изначально инициализируется локально Один из них — файл экосистемы.json, другой — файл server.js.
Содержимое экосистемы.json
{
"apps": [{
"name": "new-doc",
"script": "server.js",
//"instances": 2 服务器核心数配置
"env": {
"COMMON_VARIABLE": "true"
},
"env_production": {
"NODE_ENV": "production"
}
}],
"deploy": {
"production": {
"user": "root",
"host": ["47.95.7.29"],
"port": "22",
"ref": "origin/master",
"repo": "https://github.com/mhkz/project.git",
"path": "/www/doc/production",
"ssh_options": "StrictHostKeyChecking=no",
// "post-deploy": "npm install"
"pre-deploy-local": "echo 'Deploy Done'",
"env": {
"NODE_ENV": "production"
}
}
}
}
содержимое server.js
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('您好, 我是 大白--------');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Затем отправьте содержимое проекта на github.
git add .
git commit -m "deploy project test"
git push origin master
- Один ключ для инициализации развертывания и выпуска проекта
pm2 deploy ecosystem.json production setup
- Опубликовать проект
pm2 deploy ecosystem.json production
Откройте браузер, введите p.iquanku.com и посмотрите результат.
- Изменить содержимое локального файла
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('为什么路飞的橡胶果实不惧怕闪电');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
- Публиковать контент изменения снова
pm2 deploy ecosystem.json production
Таким образом, после завершения каждой модификации и отправки проекта серверу не нужно выполнять какие-либо операции, код сливается с основной веткой, и после завершения теста его можно развернуть напрямую.
- автозапуск pm2 при загрузке
pm2 startup centos
Другие команды используют свой собственный Google, поэтому я не буду повторять их здесь.
Личный публичный аккаунт