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