国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

isaced / 1754人閱讀

寫在最前

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

部署思路

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

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

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

ssh root@公網(wǎng)ip

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

添加用戶 Jerry sudo adduser Jerry

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

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

3、ssh 免密登錄

本地生成公鑰、私鑰

密鑰存放在本地 .ssh 文件下, 如果沒(méi)有先創(chuàng)建一下 mkdir .ssh。如果文件夾和密鑰都已經(jīng)存在,可以先備份一下已存在的密鑰 mv id_rsa id_rsa_backup。
在 .ssh 目錄下做如下操作 : 注冊(cè) ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ,開(kāi)啟代理 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ù)制過(guò)來(lái)

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

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

打開(kāi)配置文件 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

新開(kāi)一個(gè)命令行登錄試試 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 增強(qiáng)安全防護(hù)

iptables 防火墻

Fail2Ban 防御性的動(dòng)作庫(kù) 監(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ù)器常駐

可以配置一個(gè)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

解析一個(gè)二級(jí)域名(A記錄)出來(lái) test.segmentfault.com

配置 nginx cd /etc/nginx/conf.d 目錄下新增一個(gè)配置文件 sudo vi test-3000.conf。檢測(cè)配置 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 的版本號(hào)。 配置 /etc/nginx 下的 nginx.conf,把Basic Settingserver_token off 的注釋拿掉。檢測(cè)配置 sudo nginx -t, 重新加載配置 sudo server nginx reload

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

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

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

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

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

2、配置 pm2 一鍵部署項(xiàng)目

在本地項(xiàng)目下新增配置文件ecosystem.json 并配置

在服務(wù)端新建發(fā)布項(xiàng)目的文件夾 /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 

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

之后的項(xiàng)目更新重啟服務(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"
      }
    }
  }
}
我自己遇到的一個(gè)問(wèn)題,無(wú)法訪問(wèn)部署在阿里云上的站點(diǎn):ERR_CONNECTION_TIMED_OUT。 網(wǎng)絡(luò)診斷的結(jié)果是 服務(wù)器 不接受 80 端口上的連接
解決:
ECS實(shí)例的安全組規(guī)則中添加 HTTP(80) ,順便把 HTTPS(443) 也加進(jìn)來(lái)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/19132.html

相關(guān)文章

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

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

    BoYang 評(píng)論0 收藏0
  • Ubuntu 14.04 務(wù)器部署 Hexo 博客

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

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

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

    MASAILA 評(píng)論0 收藏0
  • 如何用 Ansible 部署 Kubernetes 集群到 OpenStack

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

    jiekechoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<