クラウドサーバにnodejs環境を配置する

17755 ワード

クラウドサーバにnodejs環境を配置する
インストール依存
apt-get install git vim openssl wget curl
  • はnvmをインストールします.同じマシンに異なるバージョンのnodeをインストールして切り替えます.
  • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
    
    インストールしたら再起動してください.
    service sshd restart
    
    nvm ls      //     node  
    nvm install 10.11.0     //     node10.11.0  
    nvm alias default 10.11.0          // 10.11.0       
    
  • nodeルーチン(vi server.jsを使用して)を実行します.
  • vi server.js        //    js  ,       
    
    vimコマンド:escは編集を終了します.コマンドの保存
    const http = require('http');
    const hostname = '127.0.0.1';
    const port = 3000;
    const server = http.createServer((req, res) => {
      res.statusCode = 200;
      res.setHeader('Content-Type', 'text/plain');
      res.end('Hello World
    '
    ); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
    node serverを実行して、3000ポートを開けて傍受して、もう一つのssh端末を開けて、ローカルポートにアクセスして、あるいは直接のバックグラウンドで実行してもいいです.
    node server.js  >out.log 2>&1 &
    
    アクセス結果:
    curl http://127.0.0.1:3000      //  hello world
    
  • npmとpm 2モジュール
  • をインストールします.
    apt install npm
    npm install pm2 -g
    
    pm 2は負荷バランス機能付きNodeアプリケーションのプロセスマネージャです.独立コードをすべてのサーバーのCPUを利用して、プロセスが永遠に生きていることを保証します.0秒の重載はPM 2が完璧です.
    コマンド
    作用
    p 2 start server.js
    Serverプログラムを起動します.この時は別に端末を開く必要がなく、3000ポートはずっと傍受しています.
    pm 2リスト
    現在実行中のnodeプログラムを表示します.
    p 2 show server
    serverプログラムの詳細を表示します.
    p 2 stop server
    serverプログラムを停止します
    p 2 retart server
    serverプログラムを再起動します
    p 2 logs
    ログを見る
  • ニッグnx
  • をインストールします.
    apt install nginx
    nginx -v
    cd /etc/nginx/conf.d
    
    リモート接続MongoDB 27017ポート
      まず、mono.co nfプロファイルを修正します.
    sudo vi /etc/mongo.conf
    
      は、bindIp:127..0.1を0.0.0.0に変更し、任意のIP接続を受け入れることを表しています.  その後、MongoDBサービスを再起動します.
    service mongod restart
    
  • に続き、ファイアウォール27017ポート
  • がオープンする.
    sudo ufw allow 27017
    
  • 最後に、アリ雲の安全グループ
  • を設置する必要があります.
    参考文献:アリ雲サーバポートを開く
    阿里雲ECSサーバコンソールに入り、セキュリティグループの設定を見つけて、設定規則をクリックして、セキュリティグループのルールを追加し、ポップアップのウィンドウにポート27017/27017を入力して、授権対象は0.0.0/0でいいです.
    ウィジェットを配置するHTTPS環境
    参考文献:1.ブログ園:Nodejs+Express作成HTTPSサーバ
    Redisでユーザー登録状態をキャッシュします.
    参考文献:1.ブログ園:CENTOS 7でREDIS 2.npmをインストール:redis
    Express 4.xの新特性
    参考文献:Moving to Express 4
  • すべてのDependenciesに依存しているパッケージのバージョン番号を更新するのは面倒くさいので、npm-check-udatesツールを使ってpackage.jsonの依存パケットを最新バージョンに更新する必要があります.
  • npm install -g npm-check-updates        //  
    ncu -u      //  dependencies    
    
  • 内蔵ミドルウェア4.xバージョンを除去し、これまで内蔵していたすべてのミドルウェアをstaticを除いて個別のモジュールに分離しました.4.xの各モジュールは単独でインストールし、jsファイルに依存を導入する必要があります.
  • //3.x  
    app.configure(funtcion(){
        app.use(express.static(__dirname+'/public'));
        app.use(express.logger('dev'));
        app.use(express.bodyParser());
        app.use(express.methodOverride());
    })
    
    //4.x  
    var express=require('express');
    var morgan=require('morgan');//logger      
    var bodyParser=require('body-parser');
    var methodOverride=require('method-override');
    var app=express();
    
    app.use(express.static(__dirname+'/public'));
    app.use(morgan('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended:true}));
    app.use(methodOverride());
    
  • .app.co nfigureを除去する方法は、環境を検出し、対応する構成アプリケーションをprocess.env.NODE_ENVまたはapp.get('env')を使用する.
  • //3.x  
    app.configure('development', function() {
       // configure stuff here
    });
    
    //4.x  
    var env = process.env.NODE_ENV || 'development';            //            set NODE_ENV=test
    if ('test' == env) {
       // configure stuff here
    }
    
    七つの牛雲オブジェクトは結合ドメインを記憶します.
    参考文献:CSDN:七牛雲外鎖は自分のドメイン名を結び付けます.
    _; は参照文書3を参照してドメイン名を紐付ける前に、ドメイン名解析の概念を明らかにし、ドメイン名解析はドメイン名からIPアドレスへの変換過程である.そのうち、Aレコードはドメイン名対応のIPアドレス記録を制定することである.CNAME記録は別名指向で、IPアドレスの代わりにサブドメインを使用します.したがって、結合ドメイン名は自分の登録した二級ドメイン名を七牛のサーバーに解析することに相当します.
    httpsの設定
    参考文献:
  • は、Ngix逆エージェントnodejs httpとhttps
  • を使用する.
  • NginxインストールSSL設定HTTPS超詳細全プロセス
  • NFGIXサーバ証明書インストール
  • 設定nginx.com nfはhttpのリダイレクトを定義します.
    server {
      server_name www.clhw.xyz; #         
      listen 443 ssl;
      ssl_certificate /root/nginx/cert/cert.crt;
      ssl_certificate_key /root/nginx/cert/cert.key;
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_prefer_server_ciphers on;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    
      location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Nginx-Proxy true;
      }
    }