.NET Core MVCアプリケーションをCentOS7にデプロイする

● VagrantでCentos/7 をインストールする

vagrant init centos/7
vagrant up
vagrant ssh

● .NET SDK のインストール

Centos7の仮想マシンにssh接続したらインストールをしていきます

su -
yum update  -y
yum install -y libunwind libicu lsof
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

● .NET SDK のインストール

・.NET SDK パッケージの確認

yum list | grep dotnet

インストールする dotnet のバージョンを確認します

・.NET SDK のインストール

 yum  install -y dotnet-sdk-2.1.4.x86_64 

上記コマンドのリストの中からインストールするパッケージを指定します

● dotnet コマンドの確認

dotnet --version

このようなに dotnetのバージョンが帰ってくればOK (例)

2.1.4

● HelloWorld .NET Core コンソールアプリの実行

dotnet new console -o myApp
cd myApp
dotnet run

これで

Hello World!

が表示されればOKです。

● HelloWorld .NET Core MVC アプリの作成と実行

dotnet new mvc -o testApp
cd testApp
dotnet publish -o ./published -r linux-x64
dotnet published/testApp.dll

(これで内蔵サーバが立ちあがります)

Content root path: /home/vagrant/dotnet/testApp
Now listening on: http://localhost:5000

curl で接続を確認する

curl http://localhost:5000

● 手っ取り早く 5000番ポートを空けるためfirewalld を オフにする

確認できたら firewalld を適切に設定してください。

systemctl stop firewalld

● 5000ポートの空きを確認する

lsof -i:5000

● 別のマシンから Vagrant マシンの5000版ポートを開いてみる

Google Chromeなどのブラウザから

192.168.33.10:5000

を開きます。

● nginxのインストール

vi /etc/yum.repos.d/nginx.repo

こちらの内容を保存する

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

nginxのインストール

yum install -y nginx
systemctl enable nginx
systemctl start nginx
nginx -v

● 別のマシンから nginxの起動を確かめる

Google Chromeなどのブラウザから

192.168.33.10

を開きます。nginxの画面が出ればOK

● kestrel リバースプロキシを設定する

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.backup
vi /etc/nginx/conf.d/default.conf
   location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

 ↓ このように書き換えます

   location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

nginxの再起動

sudo nginx -s reload

● SELinuxをオフにする( nginxのエラーログで Permission Denied になる場合)

sudo cat /var/log/audit/audit.log | grep nginx | grep denied
setsebool httpd_can_network_connect on -P

https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx

● 再度ブラウザからアクセスしてテストする

Google Chromeなどのブラウザから

192.168.33.10

を開きます。.NET Core MVC アプリケーションの画面が出ればOKです。

● CentOs用に パブリッシュして、実行ファイルを vagrantサーバにアップする

dotnet publish -o ./published -r centos.7-x64

あとは published フォルダを vagrant のサーバにアップして

dotnet ./published/アプリ名.dll

で起動します。

No.1264
07/03 17:15

edit