「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[nginx]]
--[[ASP.NET Coreのインストールとデプロイ]]

*目次 [#da9c6575]
#contents

*概要 [#ia42e064]
nginx ---> Kestrel ---> ASP.NET Coreアプリ

**全容 [#hca66cec]
[[ASP.NET CoreのWebサーバ - マイクロソフト系技術情報 Wiki>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Core%E3%81%AEWeb%E3%82%B5%E3%83%BC%E3%83%90]]

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

*CentOS [#m7af407c]
・・・

*Ubuntu [#vf0675c7]

**前提 [#e883c1c4]

-Linuxのsudo 特権

-[[インストール&動作確認済みのnginx>nginxのインストール]]

-[[Linux上で動作確認がとれたASP.NET Coreアプリ>ASP.NET Coreのインストールとデプロイ]]~
(先ずは、[[dotnet new mvc>ASP.NET Coreのインストールとデプロイ#t4636ccf]]でもOK)

**手順 [#nb5838f0]

***nginxリバースプロキシの構成 [#l6e65d74]
-既存のASP.NET Coreアプリケーションをnginxリバースプロキシの背後に配置。
--[[コチラ>ASP.NET Coreのインストールとデプロイ#gca834b3]]の手順を参照。

-要求を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をデーモン実行 [#e0706e71]
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ではなく、supervisordを使用してプロセスを監視するには、
--[[参考 - aspnet/Docs/linuxproduction.md - Monitoring our Web Application>https://github.com/aspnet/Docs/blob/e9c1419175c4dd7e152df3746ba1df5935aaafd5/aspnetcore/publishing/linuxproduction.md#monitoring-our-web-application]]

**監視・管理 [#i5bf25d0]
***ログ [#j404ab29]
***監視(ログ) [#j404ab29]
systemdによって、プロセスのイベントは、一元的な履歴に記録される。

-ログを表示する。
 sudo journalctl -fu kestrel-hellomvc.service

-時間オプションさらに絞り込む
 sudo journalctl -fu kestrel-hellomvc.service --since "2016-10-18" --until "2016-10-18 04:00"

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

>・・・。

*参考 [#ob3dd52a]
-ASP.NET Core アプリを Ubuntu サーバーで公開 - Qiita~
http://qiita.com/creativewebjp/items/48ede6a3f920ba26ff59

**内部リンク [#v1410e62]

***[[nginx]] [#ra56c72f]
-[[nginxの設定]]
-[[nginxのインストール]]

***[[ASP.NET Coreのインストールとデプロイ]] [#x8b2cef5]

**Microsoft Docs [#jbd1fa03]
-Nginx 搭載の Linux で ASP.NET Core をホストする~
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/linux-nginx

**マイクロソフト系技術情報 Wiki [#lb2d5a08]
-ASP.NET CoreのWebサーバ~
https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Core%E3%81%AEWeb%E3%82%B5%E3%83%BC%E3%83%90

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS