Первый адрес:Облачный сервер Tencent перешел на Vultr-fengxianqi
написать впереди
Почему хороший конец должен мигрировать? Потому что ты уже закончил. . . Несколько дней назад Tencent Cloud прислала мне сообщение о том, что срок действия моего студенческого статуса истек, что заставило меня остыть. Тогда срок действия облачного сервера истекает в последние несколько дней, и купон на 64 юаня больше нельзя будет получить, а дни на 1 юань в месяц уже никогда не вернутся. Но минимальная плата за размещение в размере 65 юаней в месяц действительно кажется немного дорогой, поэтому я решил найти более доступный сервер или vps (извините, Tencent Cloud...). Но я должен сказать, что я хотел бы поблагодарить Tencent Cloud за его поддержку в течение последних двух лет Я использовал сервер за 1 юань в месяц (сейчас это 10 юаней в месяц) более 2 лет, и у меня есть Усвоил много знаний связанных с Linux.Многие вещи дают студентам такие доступные возможности.Это действительно добросовестно и искренне благодарно.
Цель
Моя миграция здесь в основном основана на службах, которые я создал на своем текущем сервере. Это эквивалентно копированию копии. К счастью, в прошлом есть некоторые записи для справки. Я надеюсь, что этот процесс записи будет полезен и вдохновит всех .
- купить новый сервер
- установить ускорение bbr
- Настроить и включить брандмауэр
- Построить ЛНМП
- Настройка и миграция сервера Git
- Миграция блога typecho
- Среда службы узла сборки
купить новый сервер
Существует множество вариантов серверов, таких как Tencent Cloud, Alibaba Cloud, Baidu Cloud, Meituan Cloud и Meicheng Cloud в Китае.Alibaba Cloud — единственный в Китае, но все они дороже. За рубежом рекомендуются:
- Vultr1 ядро, 1G памяти, 1T трафика, $5/месяц, (есть еще пакет $2,50, но его нельзя купить в наличии), новички регистрируются и используют Paypal для пополнения $10 и получают $25, что действительно хорошо по рукам. . .
- BandwagonHost (каменщик VPS)1 ядро, 512 МБ памяти, 500 ГБ трафика, 19,9 долл. США в год, разумная цена, нет в наличии, когда я захочу купить. . .
- DigitalOceanТа же цена, что и vultr. Для большего сравнения см.Знай почти
Наконец, я выбрал Vultr, Tokyo Machine Room, Centos7, скорость может посетить мой блог, пожалуйста, посмотрите конкретный процесс покупки:vultr китайский сайтПодпишитесь на один перед покупкойPayPalАккаунт, привяжите банковскую карту, чтобы пополнить 10 долларов, и вы можете получить скидку 25 долларов (в некоторых банках требуются кредитные карты, в некоторых нет, в итоге я использовал дебетовую карту China Construction Bank).
установить ускорение bbr
Тоже первый раз слышу об этой штуке.Так как все пользуются для ускорения и установки без проблем, давайте тоже установим.Неплохо для улучшения скорости доступа.
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh # 我用的时候需要改一下权限
./bbr.sh
После завершения установки скрипт предложит перезапустить VPS, введите y и нажмите Enter для перезагрузки. После завершения перезапуска войдите в VPS, убедитесь, что последнее ядро успешно установлено и TCP BBR включен, и введите следующие команды:
uname -r
Я вывожу здесь: 4.17.0-1.el7.elrepo.x86_64
sysctl net.ipv4.tcp_available_congestion_control
Обычно возвращаемое значение: net.ipv4.tcp_available_congestion_control = reno cube bbr
sysctl net.ipv4.tcp_congestion_control
Возвращаемое значение: net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
Возвращаемое значение: net.core.default_qdisc = fq
lsmod | grep bbr
Возвращаемое значение модуля tcp_bbr означает, что bbr запущен.
Настроить и включить брандмауэр
Vultr vps на самом деле необходимо изменить в двух местах, что эквивалентно двухуровневой защите: во-первых, это группа политик брандмауэра консоли официального сайта Vultr, которая по умолчанию блокирует любой доступ. Второй — это брандмауэр, установленный по умолчанию в системе. Вам нужно настроить эти два места, чтобы открыть порт, чтобы можно было получить доступ к вашему веб-сайту. Здесь я открою предоставление веб-сервисов через порт 80 и удаленный доступ по ssh через порт 22.
Группа политики брандмауэра для открытия портов 22 и 80
Нажмите «Добавить группу брандмауэра», вам нужно дать описание, просто добавьте правила 80 и 22 под меткой IPv4.Модули IPV6 можно сначала игнорировать, а затем привязывать текущие vps в Linked Instances.На данный момент vps открыл порт 80, также требуется порт 22 (удаленный вход в оболочку).Брандмауэр открывает порт 80
Войдите в vps удаленно и проверьте версию брандмауэра.
firewall-cmd --version
# 0.4.4.4
Проверьте состояние брандмауэра брандмауэра. Совет работает.
firewall-cmd --state
# running
Добавьте разрешение на порт 80 в брандмауэре. Срочный успех.
firewall-cmd --zone=public --add-port=80/tcp --permanent
# success
Значение команды: --zone #область --add-port=80/tcp #Добавить порт в формате: порт/протокол связи –permanent #Постоянный эффект, недействителен после перезапуска без этого параметра Перезапустите брандмауэр и откройте здесь порт 80.
systemctl restart firewalld
В приложении: другие команды брандмауэра:
- Запуск: # systemctl запустить firewalld
- Перезапуск: # systemctl перезапустить firewalld
- Проверьте статус: # systemctl status firewalld или firewall-cmd –state
- Стоп: # systemctl отключить firewalld
- Отключить: # systemctl остановить firewalld
Построить ЛНМП
LNMP — это Linux, Nginx, MySQL (MariaDB), PHP. Поскольку источником yum для Centos7 по умолчанию является MariaDB, я выбрал здесь MariaDB.
Установите Nginx
yum install nginx -y
Запустить после установки
systemctl start nginx
Затем вы можете напрямую получить к нему доступ через ip, и появится страница приветствия Nginx, указывающая, что Nginx был успешно установлен (сначала вам нужно открыть брандмауэр спереди).
Проверьте версию Nginx:
nginx -v
# nginx version: nginx/1.12.2
Установите php7 и соответствующие расширения
Версия php по умолчанию в Centos7 относительно низкая, и ее необходимо обновить до php7 для лучшей игры. Проверьте установленные пакеты php
yum list installed | grep php
Измените источник оборотов
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Если вы хотите удалить установленный выше пакет, переустановите его
rpm -qa | grep webstatic
rpm -e 上面搜索到的包即可
Установите php7 и соответствующие расширения
yum install php70w php70w-fpm php70w-mysql -y
Запустите службу php-fpm
systemctl start php-fpm
Порт прослушивания конфигурации по умолчанию для php-fpm — 9000. Теперь вам нужно изменить конфигурацию, чтобы перенаправить запрос, проанализированный php, на 127.0.0.0:9000 для обработки. Измените конфигурацию nginx:vi /etc/nginx/nginx.conf
server {
listen 80;
root /usr/share/nginx/html;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
В основном добавьте следующееlocation ~ \.php$
часть. После модификации перезапустите nginx:systemctl restart nginx
.
Установить MariaDB
База данных MariaDB по умолчанию для Centos также относительно устарела и нуждается в обновлении. Пожалуйста, обратитесь к официальному сайту.Документация. лучший источник оборотов
cat <<EOF | sudo tee -a /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.1 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
ням установить
yum install MariaDB-server MariaDB-client -y
Запустите mariadb и настройте его на автоматический запуск.
systemctl start mariadb.service
systemctl enable mariadb.service
Конфигурация безопасности
/usr/bin/mysql_secure_installation
Согласно ответу на вопрос ниже, я скопировал его напрямую, и английский язык должен быть понятен.
- Enter current password for root (enter for none): Just press the Enter button
- Set root password? [Y/n]:
Y
- New password:
your-MariaDB-root-password
- Re-enter new password:
your-MariaDB-root-password
- Remove anonymous users? [Y/n]:
Y
- Disallow root login remotely? [Y/n]:
Y
- Remove test database and access to it? [Y/n]:
Y
- Reload privilege tables now? [Y/n]:
Y
На данный момент ЛНМП построен.
Настройка и миграция сервера Git
1. Установите последнюю версию Git
Версия исходного репозитория yum — 1.8.3.1.Чтобы установить последнюю версию git, вам необходимо ее скомпилировать и установить.
- Просмотрите информацию git о исходном репозитории yum.
yum info git
- Установка библиотеки зависимостей
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
- Удалить более раннюю версию Git
yum remove git
- Чтобы загрузить новую версию исходного пакета Git, вы можете найти ссылку для скачивания в официальном репозитории git (щелкните правой кнопкой мыши логотип tar.gz соответствующей версии и скопируйте ссылку):GitHub.com/git/git/теплый…Например, моя последняя версия 2.17.1.
wget https://github.com/git/git/archive/v2.17.1.tar.gz
- Распаковать в указанный каталог
tar -xzvf v2.17.1.tar.gz -C ~/app/
- Установить Гит
cd git-2.17.1
make prefix=/usr/local/git all
make prefix=/usr/local/git install
- добавить в переменную окружения
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc # 实时生效
- Посмотреть номер версии
git --version
# git version 2.17.1
Во-вторых, создайте сервер Git.
- Создайте пользователя git для запуска службы git
sudo adduser git
Здесь вы можете установить пароль пользователя для git,
passwd git
, когда пользователь не клонирует склад через ssh, он может ввести пароль.
- Выберите каталог в качестве репозитория git, например: /srv/git, в /
/srv/git
Создайте репозиторий sample.git в каталоге
sudo git init --bare sample.git
- Сменить аутера на git
sudo chown -R git:git sample.git
- Из соображений безопасности отключите вход в оболочку пользователя git.
vi /etc/passwd
будет похоже наgit:x:1001:1001:,,,:/home/git:/bin/bash
изменить наgit:x:1001:1001:,,,:/home/git:/usr/local/git/bin/git-shell
.
Здесь, чтобы обратить внимание на / usr / local / git - это ранее установленный путь git, / usr / local / git / bin / git-shell Этот файл, пожалуйста, настройте его в соответствии с вашим собственным установленным каталогом. пройти черезsu git
Чтобы проверить, успешно ли это сделано, следующее приглашение указывает, что конфигурация выполнена успешно:
# su git
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
- Репозиторий клонов клиента
Сервер git настроен, и вы можете клонировать свой собственный склад на свой компьютер по следующему адресу:
git@yourIp:/srv/git/sample.git
,Такие как:
git clone git@202.186.11.10:/srv/git/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
Примечание. Если клиентid_rsa.pub
скопировать на сервер/home/git/.ssh/authorized_keys
, вам будет предложено ввести пароль при клонировании.
Перенести репозиторий git
Миграция здесь должна сохранить историческую фиксацию, а исходный проект остается неизменным, за исключением адреса.
- Резервное копирование исходного репозитория в качестве зеркала
git clone --bare git://192.168.10.XX/git_repo/project_name.git
- Инициализировать репозиторий с тем же именем на новом сервере
git init --bare project_name.git
- Загрузите код на новый адрес сервера локально с помощью зеркального нажатия
cd project_name.git
git push --mirror git@192.168.20.XX/path/to/path/new_project_name.git
- Удалите исходный код локальной рабочей области и снова клонируйте код.
git clone git@192.168.20.XX/path/to/path/new_project_name.git
Миграция блога typecho
- резервная база данных
mysqldump -h host -u root -p dbname >dbname_backup.sql
На самом деле, я никогда не использовал вышеуказанную команду, я экспортировал ее прямо в phpMyAdmin. . . В любом случае, вы можете получить резервную копию .sql библиотеки typecho любым способом. . 2. Восстановите базу данных на новом сервере Сначала отправьте резервную копию файла backup.sql на сервер и войдите в mysql.
mysql -uroot -p
Выполните следующие команды соответственно, чтобы создать базу данных для хранения typecho, использовать базу данных и выполнить восстановление.
create database typecho;
use typecho;
source ~/backup.sql
Проверить успешность импорта, если в таблице есть описание успеха.
show tables;
- Скопируйте файлы каталога typecho на новый сервер.
Вы можете скопировать файлы в соответствующий каталог сервера с помощью таких инструментов, как FileZilla, Вот команда для синхронизации файлов под Linux:
rsync
, вы можете искать использование самостоятельно.
rsync -azcuP --chmod=ugo=rwX ./typecho/ "192.168.0.10:/srv/typecho"
Эта команда означает, что локальный/typecho
Все файлы в этом каталоге отправляются на сервер 192.168.0.10./srv/typecho
Под содержанием.
Примечание: После копирования необходимо изменить способ подключения к базе данных в config.inc.php (если пароль базы данных изменился)
4. Настройте сайт nginx
Создайте новый файл конфигурации nginx,vi /etc/nginx/conf.d/typecho.conf
, заполните следующее содержимое, обратите внимание, что содержание примечаний зависит от вашей ситуации
server {
listen 80;
server_name fengxianqi.com www.fengxianqi.com; # 域名,需要提前解析到服务器
location / {
root /srv/typecho; # typecho目录文件所在目录
index index.html index.php;
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
root /srv/typecho; # typecho目录文件所在目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
:wq
Сохраните и выйдите. Если вы добавите новый веб-сайт в будущем, вам нужно будет только/etc/nginx/conf.d
Просто создайте новый файл a.conf и перезапустите nginx, чтобы получить доступ к веб-сайту.
systemctl restart nginx
Столкнулся с проблемой: при открытии блога Typecho было обнаружено, что база данных не может быть связана, ошибка базы данных
После долгих поисков я не знаком с php, а позже узнал, что расширение mysql php не включено,vi /etc/php.ini
, в конце файла добавить
extension=mysqli.d
Затем перезапустите php```systemctl, перезапустите php-fpm``. `
Среда службы узла сборки
- Установите последнюю версию узла Найдите ссылку на последнюю версию на официальном сайте https://nodejs.org/en/download/, скачайте и разархивируйте.
wget http://nodejs.org/dist/v0.10.24/node-v8.11.3.tar.gz
tar zxvf node-v8.11.3.tar.gz
- Скомпилируйте и установите
cd node-v8.11.3
./configure --prefix=/usr/local/node/8.11.3
make
make install
- Настройте Node_Home, введите переменную среды редактирования профиля,
vi /etc/profile
Установите переменную среды nodejs вexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
Добавьте в начало строки следующее:
#set for nodejs
export NODE_HOME=/usr/local/node/8.11.3
export PATH=$NODE_HOME/bin:$PATH
:wq сохранить и выйти, скомпилировать /etc/profile, чтобы конфигурация вступила в силу
source /etc/profile
node -v
Подтвердите успех.
- Установите модуль pm2, чтобы программа узла продолжала работать. Чтобы выйти из сервера, служба узла все еще может работать в фоновом режиме.Его необходимо поддерживать модулями, такими как навсегда или pm2.Я использовал навсегда раньше, но позже обнаружил, что pm2 более полезен и поддерживает подсветку, так что это время, когда я использую pm2 и устанавливаю pm2
npm install -g pm2
После установки pm2 следующий каталог будет создан автоматически.
-
$HOME/.pm2
will contain all PM2 related files -
$HOME/.pm2/logs
will contain all applications logs -
$HOME/.pm2/pids
will contain all applications pids -
$HOME/.pm2/pm2.log
PM2 logs -
$HOME/.pm2/pm2.pid
PM2 pid -
$HOME/.pm2/rpc.sock
Socket file for remote commands -
$HOME/.pm2/pub.sock
Socket file for publishable events -
$HOME/.pm2/conf.js
PM2 Configuration
общие команды pm2
pm2 start app.js # 启动app.js应用程序
pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡
pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
pm2 start app.js --watch # 当文件变化时自动重启应用
pm2 start script.sh # 启动 bash 脚本
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 monit # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 logs [app-name] # 显示指定应用程序的日志
pm2 flush
pm2 stop all # 停止所有的应用程序
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 reload all # 重启 cluster mode下的所有应用
pm2 gracefulReload all # Graceful reload all apps in cluster mode
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
pm2 reset [app-name] # 重置重启数量
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
pm2 resurrect # 重新加载保存的应用列表
pm2 update # Save processes, kill PM2 and restore processes
pm2 generate # Generate a sample json configuration file
pm2 deploy app.json prod setup # Setup "prod" remote server
pm2 deploy app.json prod # Update "prod" remote server
pm2 deploy app.json prod revert 2 # Revert "prod" remote server by 2
pm2 module:generate [name] # Generate sample module with name [name]
pm2 install pm2-logrotate # Install module (here a log rotation system)
pm2 uninstall pm2-logrotate # Uninstall module
pm2 publish # Increment version, git push and npm publish
- Веб-сайт, созданный с помощью прокси-узла nginx Я делал заметки об этом раньше, пожалуйста, обратитесь непосредственно к:Разверните сервер Nodejs и привяжите доменное имя
напиши в конце
Увидеть здесь студентов с самого начала не просто, весь процесс миграции серверов занял у меня примерно полтора дня, много незнакомых мне людей для поисковых систем, но эта статья писалась с перерывами уже более в неделю Потом я кое-что забыл, и меня тошнило, когда я это писал. . . В конце я просто хочу сказать: ммм, я больше никогда не напишу такую длинную статью. .
Некоторые справочные ссылки:Vultr китайский сайт VULTR VPS Установка BBR Centos 7 Установите последнюю версию git How to Install MariaDB 10.1 on CentOS 7 Веб-сайт VULTR VPS недоступен в операционной системе Centos 7.3. Учебник по включению брандмауэра и добавлению группы безопасности в облачный хост Vultr руководство по установке узла