nodejsプロジェクトをテンセントクラウドに展開します.詳しい手順は?

16355 ワード

1、nodejsのインストール
1、ログインサーバ
mac       ,    sudo su -        
    :ssh -p           @ip (  ssh -p 22 [email protected]
)  ,       yes  no       ,  yes  

                

                  ,      
まず更新します.(初めてサーバを使って更新してください.)
yum update -y
2、nodejsをダウンロードする
nodejs公式サイトからダウンロード対応OSの接続を取得します.
wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz
wgetコマンドはNode.jsインストールパッケージをダウンロードします.ダウンロードが完了したら、サーバーディレクトリの下にnodejsのインストールパッケージがあります.
このパッケージを解凍します
tar xvf node-v8.10.0-linux-x64.tar.xz
サーバディレクトリで解凍後のファイルを見ることができます.
nodeのデフォルトは/root/node-v 8.10-linux-x 64/ディレクトリにインストールされ、nodeを他のディレクトリにインストールします.
展開:
linux centos各ディレクトリファイルの説明
Linuxディレクトリ構造
mkdir -p /opt/node/
mv /root/node-v8.10.0-linux-x64/* /opt/node/
削除/root/node-v 8.10-linux-x 64/インストールパッケージ
rm -rf /root/node-v8.10.0-linux-x64/
このインストールパッケージはコンパイルされたファイルです.解凍後、binフォルダにnodeとnpmが既に存在します.重複してコンパイルする必要はありません.
3.ソフトリンクを作成し、nodeとnpmコマンド全体を有効にします.ソフトリンクを作成する方法により、任意のディレクトリに直接nodeとnpmコマンドを使用することができます.
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm

4、cnpmの取り付け
npm install -g cnpm --registry=https://registry.npm.taobao.org 
環境変数、グローバルコマンドの設定
ln -s /opt/node/bin/cnpm /usr/local/bin/cnpm
node-vを入力するとバージョン情報が表示されます.
2、設置pm 2
pm 2は負荷バランス機能を持つNodeアプリケーションのプロセスマネージャです.独立コードをすべてのサーバー上のすべてのCPUを利用して、プロセスが永遠に生きていることを保証します.
私たちはローカルでnodeプロジェクトを実行していますが、node serve.jsだけで走れるようになりました.でも、消したらプロジェクトは実行できなくなります.pm 2はこの問題を解決して、常駐しています.
設置pm 2
npm install pm2@latest -g
ソフトリンクを作成し、pm 2コマンド全体を有効にします.
ln -s /opt/node/bin/pm2 /usr/local/bin/pm2
pm 2-vを入力するとバージョン情報が見えます.
3、モンゴルを取り付ける
1、モンゴルドをダウンロードする
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz
2、ダウンロードしたカバンを解凍する
tar -zxvf mongodb-linux-x86_64-3.6.3.tgz
3、モンゴルdb-linux-x 86_と名前を変えます.64-3.3
mv mongodb-linux-x86_64-3.6.3 mongodb3.6.3
4、/usr/localの下でmongodbディレクトリを作成する
mkdir -p mongodb
5、mongodb 3.6.3を/usr/local/mongodbディレクトリに移動する:
mv /mongodb3.6.3/ /usr/local/mongodb
6、/usr/local/mongodb/mongodb 3.6.3/ディレクトリにデータとログを保存するディレクトリを作成します.
mkdir -p data/koa2-blog/db
mkdir -p data/koa2-blog/log
7、/usr/local/mongodb/mongodb 3.6.3/confディレクトリにプロファイルmongodb.comを作成する:
mkdir -p conf
vim mongodb.conf
mongodb.com
#      (        27017)
port = 27018

#       ip       。0.0.0.0   ip  ,       
bind_ip=0.0.0.0

#            
dbpath = /usr/local/mongodb/mongodb3.6.3/data/koa2-blog/db

#                   
logpath = /usr/local/mongodb/mongodb3.6.3/data/koa2-blog2/log/mongodb.log

#                    
directoryperdb = true

#              ,      
fork = true

#     
logappend=true

#     
auth=false

パラメータの説明:
    : 
--dbpath      (    )
--logpath       
--master       
--slave       
--source       IP  
--pologSize            64M.  resync          ,            oplogSize   resync(    oplog          5%)。
--logappend         ,           
--journal     
--port      
--fork      
--only            
--slavedelay            
--auth           (      )
--syncdelay          ( ),0    ,    
--notablescan       
--maxConns         ,  2000  
--pidfilepath       ,           
--bind_ip   IP,        IP    
8、カスタムサービス
/lib/systemd/system/ディレクトリの下で新しいmongodb.serviceファイルを作成します.内容は以下の通りです.
[Unit]
     Description=mongodb
     After=network.target remote-fs.target nss-lookup.target
[Service]
     Type=forking
     ExecStart=/usr/local/mongodb/mongodb3.6.3/bin/mongod -f /usr/local/mongodb/mongodb3.6.3/conf/mongodb.conf
     ExecReload=/bin/kill -s HUP $MAINPID
     ExecStop=/usr/local/mongodb/mongodb3.6.3/bin/mongod --shutdown -f /usr/local/mongodb/mongodb3.6.3/conf/mongodb.conf
     PrivateTmp=true
[Install]
    WantedBy=multi-user.target

9、パーミッションの設定
chmod 754 mongodb.service 
10、クローズサービスを起動し、起動を設定する
#     
systemctl start mongodb.service   
#       
systemctl stop mongodb.service   
#       
systemctl enable mongodb.service 
#     
systemctl status mongodb.service
#   mongodb.service                 
systemctl daemon-reload
11、モンゴを設置し、モンゴコマンドは大局的に有効です.
ln -s /usr/local/mongodb/mongodb3.6.3/bin/mongo  /usr/local/bin/mongo
ln -s /usr/local/mongodb/mongodb3.6.3/bin/mongod  /usr/local/bin/mongod
データベースの接続に成功しました.
[root@VM_0_11_centos ~]# mongo --port=27018
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27018/
MongoDB server version: 3.6.3
Server has startup warnings: 
2018-03-27T13:14:24.748+0800 I STORAGE  [initandlisten] 
2018-03-27T13:14:24.748+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-03-27T13:14:24.748+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] 
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] 
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] 
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-03-27T13:14:27.801+0800 I CONTROL  [initandlisten]
>
12、データベースアクセス権限の設定
ステップ1:admin表に入る
 use admin
ステップ2:スーパー管理アカウントを作成する
db.createUser({user:"admin",pwd:"wz123",roles:[{role:"userAdminAnyDatabase", db: "admin"}]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

ステップ3:オープン権限の検証/usr/local/mongodb/mongodb 3.6.3/conf/mongodb.comで設定する
#     
auth=true
mongodbサービスを再起動してからデータベースに接続します.show usersはすべてのユーザーを確認します.エラーが表示されます.管理者の権限を検証する必要があります.
[root@VM_0_11_centos ~]# mongo --port=27018
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27018/
MongoDB server version: 3.6.3
> use admin
switched to db admin
> show users
2018-03-27T14:10:38.323+0800 E QUERY    [thread1] Error: not authorized on admin to execute command { usersInfo: 1.0, $db: "admin" } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1686:1
shellHelper.show@src/mongo/shell/utils.js:799:9
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1
> 
権限認証後、ユーザーのusersを確認できます.
> db.auth('admin','wz123')
1
> show users
{
	"_id" : "admin.admin",
	"user" : "admin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

ここではadminによって作成されたadminユーザに対して、権限だけでユーザーとキャラクターを管理します.他の操作をしようとすれば、例えばtestデータベースのfooセットでデータを読みに行きます.mongodbはエラーに戻ります.
あなたがユーザーのデータベース(ここでtestデータベース)を作成するのは、ユーザ認証データベースです.ユーザ認証はこのデータベースですが、ユーザは他のデータベースの役割を持ってもいいです.つまり、ユーザ認証データベースはユーザ権限を制限しません.
権限のあるキャラクターは以下の通りです.
      
       :read、readWrite; 
       :dbAdmin、dbOwner、userAdmin; 
      :clusterAdmin、clusterManager、clusterMonitor、hostManager; 
      :backup、restore; 
       :readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 
      :root //                          (dbOwner 、userAdmin、userAdminAnyDatabase) 
    :__system 
    : 
Read:            
readWrite:            
dbAdmin:                 ,     、  ,       system.profile 
userAdmin:     system.users    ,           、        
clusterAdmin:  admin      ,                     。 
readAnyDatabase:  admin      ,              
readWriteAnyDatabase:  admin      ,               
userAdminAnyDatabase:  admin      ,          userAdmin   
dbAdminAnyDatabase:  admin      ,          dbAdmin  。 
root:  admin      。    ,    
ステップ4:データベースを作成し、このデータベースにアクセス権限を設定します.
データベースkoa 2に読み書きの権限を設定します.
[root@VM_0_11_centos ~]# mongo --port=27018
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27018/
MongoDB server version: 3.6.3
> use admin
switched to db admin
> db.auth('admin','wz123')
1
> use koa2
switched to db koa2
> db.createUser({user:'wz',pwd:'wz123',roles:[{role:'readWrite',db:'koa2'}]})
Successfully added user: {
	"user" : "wz",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "koa2"
		}
	]
}
> 
ステップ5
テストデータを書き込み、Robo 3 T接続データベース、koa 2データベースにtestセットを書き込みます.
db.test.insert({title:'  ',name:'  ',age:12})
RoBo 3 T接続データベースを開けば、集合collectionにtestが表示されます.
4、Ngixの取り付け
yum install nginx
修正/etc/nginxの設定で、すべての書き込みを削除します.
##           
events {
    ##           
    worker_connections 1024;
}

##   http    
http {
    include /etc/nginx/conf.d/*.conf;
}

koa 2-blog-8501.com nfを/etc/inx/conf.dに新規作成する.
server{
    listen 80;
    server_name  118.25.6.XXX;
    ##       
    location / {
        root /home/koa2-blog/build/;
        index  index.html index.htm;
    }
    ##       
     location /api {
           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_set_header Connection "";
           proxy_set_header Cookie $http_cookie;
           proxy_pass http://127.0.0.1:8081;
         }
}

その後再開します
 systemctl restart nginx.service
コマンド:
#  nginx  
systemctl start nginx.service
#  nginx  
systemctl stop nginx.service
#  nginx  
systemctl restart nginx.service
#    nginx  (     ,     nginx            )
systemctl reload nginx.service
nginx.com nf全解析
5、プロジェクトをサーバにアップロードする
バックエンドが/home/koa 2-blog/ディレクトリ下のフロントエンドreactプロジェクトにもbuildされ、このディレクトリの下に送られます.
--koa2-blog
    --build
    --server
    --node_modules
    --package.json
pm 2運転server.js
pm 2常用コマンド
pm2 start server.js
ブラウザでフロントエンド項目を開くと、ウェブサイトがアクセスできます.
参考文献