nodejsプロジェクトをテンセントクラウドに展開します.詳しい手順は?
16355 ワード
1、nodejsのインストール
1、ログインサーバ
nodejs公式サイトからダウンロード対応OSの接続を取得します.
このパッケージを解凍します
nodeのデフォルトは/root/node-v 8.10-linux-x 64/ディレクトリにインストールされ、nodeを他のディレクトリにインストールします.
展開:
linux centos各ディレクトリファイルの説明
Linuxディレクトリ構造
3.ソフトリンクを作成し、nodeとnpmコマンド全体を有効にします.ソフトリンクを作成する方法により、任意のディレクトリに直接nodeとnpmコマンドを使用することができます.
2、設置pm 2
pm 2は負荷バランス機能を持つNodeアプリケーションのプロセスマネージャです.独立コードをすべてのサーバー上のすべてのCPUを利用して、プロセスが永遠に生きていることを保証します.
私たちはローカルでnodeプロジェクトを実行していますが、node serve.jsだけで走れるようになりました.でも、消したらプロジェクトは実行できなくなります.pm 2はこの問題を解決して、常駐しています.
設置pm 2
3、モンゴルを取り付ける
1、モンゴルドをダウンロードする
/lib/systemd/system/ディレクトリの下で新しいmongodb.serviceファイルを作成します.内容は以下の通りです.
ステップ1:admin表に入る
あなたがユーザーのデータベース(ここでtestデータベース)を作成するのは、ユーザ認証データベースです.ユーザ認証はこのデータベースですが、ユーザは他のデータベースの役割を持ってもいいです.つまり、ユーザ認証データベースはユーザ権限を制限しません.
権限のあるキャラクターは以下の通りです.
データベースkoa 2に読み書きの権限を設定します.
テストデータを書き込み、Robo 3 T接続データベース、koa 2データベースにtestセットを書き込みます.
4、Ngixの取り付け
5、プロジェクトをサーバにアップロードする
バックエンドが/home/koa 2-blog/ディレクトリ下のフロントエンドreactプロジェクトにもbuildされ、このディレクトリの下に送られます.
pm 2常用コマンド
参考文献
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.3mv 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.jspm 2常用コマンド
pm2 start server.js
ブラウザでフロントエンド項目を開くと、ウェブサイトがアクセスできます.参考文献