亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ubuntu 下部署 node 服務(wù)器環(huán)境 - 基礎(chǔ)篇

BoYang / 786人閱讀

寫在最前

這是根據(jù) imooc 上 Scott 老師的課程整理的,主要是方便自己查找,因為真的記不住...
附上鏈接:Node.js項目線上服務(wù)器部署與發(fā)布 靜態(tài)網(wǎng)站,需要數(shù)據(jù)庫的電影網(wǎng)站、公眾號,小程序,app 五種項目的部署。
這里只寫最簡單的靜態(tài)網(wǎng)站的部署

部署思路

1、完成項目
2、購買域名,備案,解析一些二級域名出來備用
3、購買服務(wù)器
4、ssh 遠(yuǎn)程登錄服務(wù)器 并進(jìn)行一些安全配置
5、服務(wù)端搭建 node 環(huán)境
6、Nginx 反向代理。持有80端口,負(fù)責(zé)端口轉(zhuǎn)發(fā)
7、配置 數(shù)據(jù)庫 mongodb... 安裝教程
8、部署上線。本地和服務(wù)器上都安裝git、pm2(pm2 負(fù)責(zé)把git的項目更新到服務(wù)器)

遠(yuǎn)程登錄服務(wù)器 1、第一次 ssh 遠(yuǎn)程登錄

騰訊的超級管理員賬戶是 ubuntu ,阿里的是 root

ssh root@公網(wǎng)ip

2、委派一個欽差大臣Jerry,避免用超級管理員賬號進(jìn)行直接操作

添加用戶 Jerry sudo adduser Jerry

給 Jerry 升官。sudo visudo 打開 GUN nano 配置文件, 在 User privilege specification 下添加 Jerry ALL=(ALL:ALL) ALL
對所有sudo生效;Jerry 可以以任何命令來執(zhí)行操作;Jerry 可以以任何組來執(zhí)行操作;這個規(guī)則適用于所有命令

重啟 ssh 服務(wù):service ssh restart。 然后就可以用 Jerry 登錄啦(新開一個命令行,以免登錄失敗無后路可退): ssh Jerry@外網(wǎng)IP

3、ssh 免密登錄

本地生成公鑰、私鑰

密鑰存放在本地 .ssh 文件下, 如果沒有先創(chuàng)建一下 mkdir .ssh。如果文件夾和密鑰都已經(jīng)存在,可以先備份一下已存在的密鑰 mv id_rsa id_rsa_backup
在 .ssh 目錄下做如下操作 : 注冊 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ,開啟代理 eval "$(ssh-agent -s)", 加入代理 ssh-add ~/.ssh/id_rsa

服務(wù)端生成 并把本地的公鑰放在服務(wù)端的 authorized_keys
使用 Jerry 登錄服務(wù)端,在 /home/Jerry/.ssh 目錄下也進(jìn)行如上操作生成密鑰。接著創(chuàng)建授權(quán)文件 vi authorized_keys, vi 是 vim 的縮寫,把想要免密登錄服務(wù)器的電腦的公鑰 ip_rsa.pub 復(fù)制過來

服務(wù)端授權(quán) chmod 600 authorized_keys 并重啟ssh 服務(wù) service ssh restart 。 這樣就可以通過 Jerry 免密登錄了, 通過 root 依然需要密碼

一個報錯 
Host key verification failed
原因:
本地 .ssh 文件夾下存在另一個文件 known_hosts, 這里記錄的是所有訪問過的計算機(服務(wù)器是臺遠(yuǎn)程計算機)的公鑰,報錯的公鑰有問題
解決辦法:
清除對應(yīng)的公鑰信息。 最粗暴的辦法是直接刪除文件 rm -rf known_hosts , 正確的公鑰也會被刪掉。含蓄一點就是打開文件找到公鑰刪掉它。 還有一種辦法 ssh-keygen -r 公網(wǎng)IP,可惜報錯了 no keys found
提升安全等級 1、修改服務(wù)器默認(rèn)登錄端口號

打開配置文件 sudo vi /etc/ssh/sshd_config ,服務(wù)器默認(rèn)端口是 22 ,修改 Port 22 。0-1024 不用,被系統(tǒng)程序占用,且必須 root 啟用,1024-65536可用。

文件末行添加 AllowUsers Jerry 。 順便確認(rèn)一下 UseDNS no

重啟 ssh 服務(wù) sudo service ssh restart

新開一個命令行登錄試試 ssh -p 39999 Jerry@外網(wǎng)IP

2、關(guān)閉 root 密碼登錄
sudo vi /etc/ssh/sshd_config

PermitRootLogin  no
PasswordAuthentication  no
PrimitEmptyPasswords  no (確認(rèn)一下,默認(rèn)也是no)
3、配置iptables 和 Fail2Ban 增強安全防護(hù)

iptables 防火墻

Fail2Ban 防御性的動作庫 監(jiān)控系統(tǒng)的日志中的行為給相應(yīng)的操作??梢尚袨镮P鎖定...

搭建 node 生產(chǎn)環(huán)境 1、搭建 node 環(huán)境

更新系統(tǒng) sudo apt-get update

一口氣安裝 sudo apt-get install vim openssl build-essential libssl-dev wget curl git

安裝 nvm。 在git上搜索 nvm , install script 下有安裝辦法 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash 或者 wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

安裝某版本的 node nvm install v6.9.5 或者安裝最新的 nvm install node

安裝一些全局工具包 npm i pm2 webpack gulp grunt-cli -g..

2、借助 pm2 讓服務(wù)器常駐

可以配置一個taobao鏡像,直接 npm 可能很慢

   npm --registry=https://registry.npm.taobao.org install -g npm
   echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
   npm --registry=https://registry.npm.taobao.org install -g cnpm

安裝 pm2 cnpm i pm2 -g or npm i pm2 -g or npm --registry=https://registry.npm.taobao.org install -g pm2

Nginx 反向代理

Nginx 持有 80 端口,負(fù)責(zé)端口轉(zhuǎn)發(fā)

更新 sudo apt-get update

安裝 nginx sudo apt-get install nginx

解析一個二級域名(A記錄)出來 test.segmentfault.com

配置 nginx cd /etc/nginx/conf.d 目錄下新增一個配置文件 sudo vi test-3000.conf。檢測配置 sudo nginx -t, 重啟nginx sudo nginx -s reload

upstream test {
    server 127.0.0.1:3000;
}
server {
    listen 80;
    server_name test.segmentfault.com;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header HOST $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://test;
        proxy_redirect off;
    }
}

隱藏瀏覽器 Header 信息中 Nginx 的版本號。 配置 /etc/nginx 下的 nginx.conf,把Basic Settingserver_token off 的注釋拿掉。檢測配置 sudo nginx -t, 重新加載配置 sudo server nginx reload

靜態(tài)網(wǎng)站部署 1、項目上傳至 git 倉庫

把本地和服務(wù)端的 id-rsa.pub添加至 git

本地安裝 git ,創(chuàng)建并上傳項目到 git

服務(wù)端安裝 git sudo apt-get install git

服務(wù)端測試一下 clone 項目 git clone git@github.com:DoFind/test.git

2、配置 pm2 一鍵部署項目

在本地項目下新增配置文件ecosystem.json 并配置

在服務(wù)端新建發(fā)布項目的文件夾 /www/test,粗暴給操作 test 的權(quán)限 sudo chmod 777 test

vi .bashrc 注釋一些代碼 source .bashrc

找到以下這幾行代碼注釋掉:

# If not running interactively, don"t do anything
# case $- in
#     *i*);;
#       *)return;; 
# esac 

接送一下項目(從 git 到 服務(wù)器) pm2 deploy ecosystem.json production setup

之后的項目更新重啟服務(wù) pm2 deploy ecosystem.json production

// ecosystem.json 內(nèi)容如下:

{
  "apps": [
    {
      "name": "test",
      "script": "app.js",
      "env": {
        "COMMON_VARIABLE": "true"
      },
      "env_production": {
        "NODE_ENV": "production"
      }
    }
  ],
  "deploy": {
    "production": {
      "user": "Jerry",
      "host": ["公網(wǎng)IP"],
      "port": "39999", 
      "ref": "origin/master",
      "repo": "git@github.com:DoFind/test.git",
      "path": "/www/test/production",
      "ssh_options": "StrictHostKeyChecking=no",
      "post-deploy": "npm install --registry=https://registry.npm.taobao.org && pm2 startOrRestart ecosystem.json --env production",
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}
我自己遇到的一個問題,無法訪問部署在阿里云上的站點:ERR_CONNECTION_TIMED_OUT。 網(wǎng)絡(luò)診斷的結(jié)果是 服務(wù)器 不接受 80 端口上的連接
解決:
ECS實例的安全組規(guī)則中添加 HTTP(80) ,順便把 HTTPS(443) 也加進(jìn)來

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/39698.html

相關(guān)文章

  • ubuntu 部署 node 務(wù)器環(huán)境 - 基礎(chǔ)

    寫在最前 這是根據(jù) imooc 上 Scott 老師的課程整理的,主要是方便自己查找,因為真的記不住... 附上鏈接:Node.js項目線上服務(wù)器部署與發(fā)布 靜態(tài)網(wǎng)站,需要數(shù)據(jù)庫的電影網(wǎng)站、公眾號,小程序,app 五種項目的部署。這里只寫最簡單的靜態(tài)網(wǎng)站的部署 部署思路 1、完成項目2、購買域名,備案,解析一些二級域名出來備用3、購買服務(wù)器 4、ssh 遠(yuǎn)程登錄服務(wù)器 并進(jìn)行一些安全配置5、服務(wù)...

    isaced 評論0 收藏0
  • Ubuntu 14.04 務(wù)器部署 Hexo 博客

    摘要:本文將介紹如何在一臺的云服務(wù)器上快速部署博客站點,如何快速發(fā)布一篇博文并通過云服務(wù)器上的私有倉庫部署到服務(wù)器目錄下。此外,還要在云服務(wù)器上安裝和兩個必備的軟件包。在服務(wù)器上部署博客以下為文章正文。 推薦理由:Hexo 是用 Node.js 開發(fā)的一個靜態(tài)站點生成器(Static Site Generator),支持 Markdown 語法寫作,有著強大的插件系統(tǒng),而且性能優(yōu)異。下面我推...

    cyqian 評論0 收藏0
  • 談?wù)凱od在微服務(wù)中的運用

    摘要:本文整理自時速云線上微信群分享第十期本文主要包括的基本概念使用場景,以及如何在時速云平臺上進(jìn)行的編排部署,希望對大家在進(jìn)行微服務(wù)架構(gòu)實踐時有所幫助。問關(guān)于提供訪問容器數(shù)據(jù)的能力,中包含一個業(yè)務(wù)和一個服務(wù),時速云的控制臺可以進(jìn)入到容器內(nèi)部。 本文整理自【時速云線上微信群分享】第十期 本文主要包括Pod的基本概念、使用場景,以及如何在時速云平臺上進(jìn)行Pod的編排部署,希望對大家在進(jìn)行微服務(wù)...

    MASAILA 評論0 收藏0
  • 如何用 Ansible 部署 Kubernetes 集群到 OpenStack

    摘要:測試后,使用來發(fā)布。部署軟件組件,啟動虛擬機,將虛擬機分類到和節(jié)點,然后部署密鑰清單。集群自動化集群配置由三個控制。自簽證書簽署的服務(wù)器端證書和它的密鑰文件。 我們之前聊了把OpenStack跑在K8S上,如何基于Kubernetes在TCP云端創(chuàng)建私有云解決方法,運用在生產(chǎn)或在OpenStack啟動虛擬化。今天換個姿勢,我們來看看如何在OpenStack虛擬機上運行Kubernete...

    jiekechoo 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<