В свободное время я переписываю свой блог, я использовал блог, сгенерированный hexo ранее, и запускал его на странице git. Это переписывание является предпочтительным фреймворком koa2.
Сегодня давайте напишем о развертывании веб-сайта koa2 и настройке https.
Общая структура текущего веб-сайта: Приложение koa2 работает в1113
порт, затем обратный прокси nginx на443
(https), а nginx будет80
(http) перенаправление портов на443
(https) порт.
конфигурация pm2
pm2 — это менеджер процессов с открытым исходным кодом на основе Nodejs, включающий полный набор функций для процесса демона, мониторинга и ведения журнала. По сути, это единственный выбор процесса демона для приложений Nodejs. Фактически, он может не только запускать программы Nodejs, но и пока это общая программа со сценарием, и она также может выполнять эту работу.
pm2 — это менеджер процессов для приложений Node с балансировкой нагрузки. Используя pm2, процесс нашего приложения node всегда работает в фоновом режиме. Кроме того, pm2 также имеет очень мощную функцию развертывания, которая может напрямую развертывать веб-сайты в Интернете с локального компьютера. Ниже я объясню конкретную операцию.
-
Программное обеспечение для установки сервера
На стороне сервера необходимо установить git, node, pm2, nginx и т.д.
После их установки вам необходимо сгенерировать ключ ssh на сервере, а затем добавить сгенерированный ключ паба в ключи развертывания в настройках в соответствующем репозитории git. -
Установить программное обеспечение локально
Есть git, node, pm2 и т. д., которые необходимо установить локально. -
конфигурация развертывания pm2
использоватьpm2 ecosystem
Создайте файл примера конфигурации, а затем откройте созданный файл конфигурации конфигурации. Ниже приведен созданный файл примера конфигурации.module.exports = { /** * Application configuration section * http://pm2.keymetrics.io/docs/usage/application-declaration/ */ apps: [ // First application { name: 'API', script: 'app.js', env: { COMMON_VARIABLE: 'true' }, env_production: { NODE_ENV: 'production' } }, // Second application { name: 'WEB', script: 'web.js' } ], /** * Deployment section * http://pm2.keymetrics.io/docs/usage/deployment/ */ deploy: { production: { user: 'node', host: '212.83.163.1', ref: 'origin/master', repo: 'git@github.com:repo.git', path: '/var/www/production', 'post-deploy': 'npm install && pm2 reload ecosystem.config.js --env production' }, dev: { user: 'node', host: '212.83.163.1', ref: 'origin/master', repo: 'git@github.com:repo.git', path: '/var/www/development', 'post-deploy': 'npm install && pm2 reload ecosystem.config.js --env dev', env: { NODE_ENV: 'dev' } } } };
В приложениях можно настроить несколько приложений, а развертывание — это конфигурация, используемая для настройки различных сред.После настройки с примерами вы можете внести соответствующие изменения в соответствии с вашей реальной ситуацией.
Получив файл конфигурации, выполнитеpm2 deploy ecosystem.config.js production setup
команда для инициализации настроек, после завершения операции запуститьpm2 deploy ecosystem.config.js production
Эту команду можно использовать для обновления и развертывания приложений в будущем. (Для удобства эти две команды можно настроить так, чтобы скрипты в package.json).
После выполнения команды, если не произошло несчастного случая, появится слово Success, указывающее на успешное развертывание. В это время введите соответствующий IP-адрес сервера и номер порта, который вы установили в браузере, чтобы открыть развернутый вами веб-сайт. Так же на сервер можно пройтиpm2 list
Просмотр запущенных приложений.
конфигурация nginx
-
настроить http
После установки nginx на сервер откройте/etc/nginx/sites-enabled
Каталог (каталог файла конфигурации по умолчанию), создайте новый файл конфигурации в этом каталоге, напримерblog.conf
, а затем вы можете открыть файл конфигурации для настройки и обратно проксировать уже запущенную службу узла на порт 80. Моя конфигурация выглядит следующим образом:server { listen 80; server_name blog.zhaofinger.com zhaofinger.com www.zhaofinger.com; access_log /var/www/log/blog-access.log; error_log /var/www/log/blog-error.log; 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_pass http://127.0.0.1:1113/; proxy_redirect off; } }
proxy_pass соответствует порту, на котором работает служба узла. После записи файла сохраните и выйдите, а затем перезапустите службу nginx,
service nginx restart
, после успешного повторного обслуживания (если есть ошибка, вы можете открыть журнал nginx, чтобы просмотреть соответствующую ошибку), вы можете открыть соответствующее доменное имя для доступа к веб-сайту. -
настроить https
Для настройки https сначала нужно приобрести https-сертификат, который я купил бесплатно на Alibaba CloudСертификат, откройте веб-сайт и нажмите «Купить сертификат», затем выберите «Бесплатный DV SSL», затем нажмите «Купить сейчас». После покупки сертификата откройте консоль сертификатов, чтобы заполнить информацию.
Загрузите два файла сертификата и загрузите их на сервер в соответствии с инструкциями. затем откройтеblog.conf
сделать https конфигурация. Моя конфигурация выглядит следующим образом:server { listen 443; server_name blog.zhaofinger.com zhaofinger.com www.zhaofinger.com; access_log /var/www/log/blog-access.log; error_log /var/www/log/blog-error.log; ssl on; ssl_certificate /etc/nginx/cert/214259593710649.pem; ssl_certificate_key /etc/nginx/cert/214259593710649.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; 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_pass http://127.0.0.1:1113/; proxy_redirect off; } }
ssl_certificate
а такжеssl_certificate_key
это расположение файла, который был только что загружен. После завершения настройки сохраните файл конфигурации, выйдите и перезапустите службу nginx. затем откройтеxxx.comдля доступа к веб-сайту.
После настройки https необходимо перевести службу http, соответствующую порту 80, на https, и добавить следующую конфигурацию:server { listen 80; server_name www.zhaofinger.com; rewrite ^/(.*) https://$server_name$1 permanent; #跳转到Https }
Здесь можно использовать pm2 + nginx для настройки службы https.
Наконец, исходный код этого блога размещен по адресуgithub, добро пожаловать в использование, добро пожаловать в звезду.
Если в статье есть ошибки, поправьте меня.