「[[.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