В свободное время я переписываю свой блог, я использовал блог, сгенерированный 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, добро пожаловать в использование, добро пожаловать в звезду.
Если в статье есть ошибки, поправьте меня.