.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

nginx ---> Kestrel ---> ASP.NET Coreアプリ

全容

ASP.NET CoreのWebサーバ - マイクロソフト系技術情報 Wiki

手順

  • dotnet publishでFDDのアプリケーション・パッケージ生成する。
  • 既存のASP.NET Coreアプリケーションをnginxリバースプロキシの背後に配置。
  • 要求をKestrel Webサーバに転送するようにnginxリバースプロキシを設定。
  • Webアプリケーションを起動時にデーモンとして実行する。
  • Webアプリケーションの再起動を支援するプロセス管理ツールを設定。

CentOS

・・・

Ubuntu

前提

  • Linuxのsudo 特権

手順

nginxリバースプロキシの構成

  • 既存のASP.NET Coreアプリケーションをnginxリバースプロキシの背後に配置。
  • 要求をKestrel Webサーバに転送するようにnginxリバースプロキシを設定。
    • 設定の変更
      /etc/nginx/conf.d/default.conf
      server {
          listen        80;
          server_name   example.com *.example.com;
          location / {
              proxy_pass         http://localhost:5000;
              proxy_http_version 1.1;
              proxy_set_header   Upgrade $http_upgrade;
              proxy_set_header   Connection keep-alive;
              proxy_set_header   Host $http_host;
              proxy_cache_bypass $http_upgrade;
          }
      }
      ※ 設定先には上記以外に下記があるもよう。詳しくはnginxの設定を参照。
      • /etc/nginx/nginx.conf
      • /etc/nginx/sites-available/default
  • 設定のチェック
    sudo nginx -t
  • 設定の反映
    sudo nginx -s reload

Kestrelをデーモン実行

Webアプリケーションを起動時にデーモンとして実行する。

  • systemdのサービス定義ファイルを作成
  • テキスト・エディタで開く
    sudo vi /etc/systemd/system/kestrel-hellomvc.service
  • 以下のように設定する。
    [Unit]
    Description=Example .NET Web API App running on Ubuntu
    [Service]
    WorkingDirectory=/var/aspnetcore/hellomvc ※ 実際の値に変更。
    ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll ※ 実際の値に変更。
    Restart=always
    RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
    SyslogIdentifier=dotnet-example
    User=www-data
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
    [Install]
    WantedBy=multi-user.target
  • ファイルを保存し、サービスを有効にする。
    sudo systemctl enable kestrel-hellomvc.service
  • サービスを開始し、実⾏されていることを確認する。
    sudo systemctl start kestrel-hellomvc.service
    sudo systemctl status kestrel-hellomvc.service

監視(ログ)

systemdによって、プロセスのイベントは、一元的な履歴に記録される。

  • ログを表示する。
    sudo journalctl -fu kestrel-hellomvc.service
  • 時間オプションさらに絞り込む
    sudo journalctl -fu kestrel-hellomvc.service --since "2016-10-18" --until "2016-10-18 04:00"

プロセス管理

Webアプリケーションの再起動を支援するプロセス管理ツールを設定。

・・・。

参考

内部リンク

nginx

ASP.NET Coreのインストールとデプロイ

Microsoft Docs

マイクロソフト系技術情報 Wiki


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-27 (金) 14:16:58 (508d)