デジタル海洋への増幅サーバーの展開


こんにちは!このポストでは、デジタルオーシャンにあなたのアンプサーバーを展開する方法を教えてくれます.APIを要求することができます作成、またはデータを削除し、データを取得するなど.

ディジタル海洋液滴の設置
今、私たちのサーバーを実行するには、我々は、デジタルオーシャンを提供する仮想マシンを持っている必要があります.
  • デジタルオーシャンの雲へwebsite .
    をクリックし、ドロップダウンをクリックします.
  • 液滴の仕様を選択

  • Ubuntuをディスクイメージとして使用します.次に、あなたの要件に応じて計画を選択します.

    次に、データセンターを選択します.私はあなたに最も近いセンターを選択することをお勧めします.

    私は常にsshキー認証を使用することをお勧めします.パスワード認証より安全で良い
    最後に、作成ボタンをクリックしてドロップレットを作成します.液滴が準備できるように30秒から1分かかるかもしれません.

    液滴の設置
    あなたの液滴が作成されたので、必要なパッケージをインストールする必要があります.液滴の設定手順は次のとおりです.
  • 端末を開く
  • ランssh root@<host> ホストがあなたの液滴のIPv 4であるところ.あなたの液滴メニューから行くことによって、このIPを得ることができます.
  • これで、液滴にうまく接続していることがわかります.
  • ノードの最新バージョンを閉じる-curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
  • このコマンドを実行してnodejsをインストールします.sudo apt-get install -y nodejs
  • Dockerを次のコマンドでインストールします.apt install docker-compose
  • PM 2をインストールnpm install -g pm2

  • プロジェクトの設定
    NODEJSをインストールしたので、次の手順に従います.
  • リポジトリをクローンしてください-ホームディレクトリまたは他のディレクトリでgitを使用している倉庫をクローン化してくださいgit clone <repository_url>
  • ディレクトリをソースコードのディレクトリに変更します.cd <folder_name>
  • オプション:実際には、管理者UIフォルダを削除することができます.
  • ディレクトリをサーバーフォルダに変更しますcd server
  • 必要な依存関係をインストールするnpm install
  • インストールが完了するのを待ちます
  • Prismaクライアントの生成npm run prisma:generate
  • データベースを起動するnpm run docker:db
  • データベースの初期化npm run db:init
  • ポートを3000から80に変更しました.なぜこれを行う必要がありますか?さて、ユーザがAPIにアクセスするために特定のポストに行くのを許してはいけません.ブラウザのデフォルトポートは80ですので、ポートを変更しました.このようにして、ユーザはhttp://<host>/ 行く代わりにhttp://<host>:3000/ . 私は、これが意味することを望みます.
  • ナノエディタを起動するnano src/main.ts (サーバ/ディレクトリにあることを確認してください).あなたはこのコンテンツで行を見つける必要がありますconst { PORT = 3000 } = process.env; . これを変えるconst { PORT = 80 } = process.env;プレスCtrl + X then Y then Enter
  • 最後に、生産用アプリケーションを構築します.npm run build . これはフォルダを作成しますdist .
  • お使いのサーバーがうまく動作している場合は、実際にテストすることができます.ランnode dist/main.js そして、このウェブサイトに行きなさいhttp://<host>/graphql , ホストがあなたの液滴のIPv 4であるところ.
  • 実行中のコードを終了すると、サイトがハングアップし、読み込みを続け、このエラーを取得します<url> took too long to respond
  • さて、バックグラウンドでこのコードを実行するには、このコマンドを使用します.pm2 start dist/main.js . 今、あなたが再びサイトに行くならば、あなたはそれをレンダリングするのを見るべきです.驚くべき!

  • ドメインの作成
    今、もちろん、あなたは、ドロップアウトのIPアドレスを介してAPIへのアクセスを提供しません.そこで、ドメインを使用します.ドメインを購入してください(私はサイトから無料でドメインを買いました)https://www.freenom.com/en/index.html ).

    ドメインの設定
    次の手順に従います
  • Digital Oceanの家の左のバーのドメインオプションをクリックしてください
  • 次に、「入力ドメイン」という入力ボックスが表示されます.そこにドメインを入力します.

  • 「ドメインを追加」をクリックします
  • レコード作成
  • 次に、「Create New Records」の下のメニューのAボタンをクリックしてください
    ドメインが何をするかを表すサブドメインを作成できます.APIを展開しているように、APIを使用できます.コマース.サブドメインを作成したくない場合は"@"を使用します.次に、“ウィルリダイレクト”の下に、あなたの滴を選択します.をクリックします
  • ネームサーバの追加
  • 今、異なるドメインプロバイダは、ネームサーバーを設定するための異なる場所を持っています.「DNSレコードの下では、3つのネームサーバを動かすでしょう.ns<number>.digitalocean.com ). それらをコピーして、サーバーに追加してください(特定のドメインプロバイダーの上でチュートリアルに従うことによってそうする方法を見つけることができます).
  • CNNameの追加
  • メニューのcnameオプションに移動します.ホスト名を入力しますwww and @ の下では"の別名です.「レコードを作成」をクリックします
    注意:液滴がドメイン上で起動するのに時間がかかるかもしれません.
    完了!あなたが正常にデジタル海にサーバーを展開している!

    APIのテスト
    サーバーをテストし、サーバーをテストするまでの時間が正常にできました.いくつかのリクエストを行い、出力をチェックします.
  • ユーザーのリクエストを取得する
  • import fetch from "node-fetch"
    
    fetch("http://<your_website>/api/users" , {
        method: "GET",
        headers: {
            "Authorization": "Basic YWRtaW46YWRtaW4="
        }
    }).then((res) => res.json())
    .then((data) => console.log(data))
    
    上記のコードを実行すると、利用可能なユーザーの一覧が表示されます.

    エンディング
    私はあなたがデジタル海にあなたのアプリケーションサーバーを展開する方法を理解していることを願っています.

    結論
    私は、感謝したくないYuval Hazaz この驚くべきプロジェクトのためにも、このチュートリアルを作るのを助けるために.
    マイgithub profile