Amazon

2020年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

最近のトラックバック

無料ブログはココログ

« .Net Core ASP.NET MVCをLinux(Debian + Docker)で動かしてみる : Nginx編 | トップページ | Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) »

2020年8月 3日 (月)

.Net Core ASP.NET MVCをLinux(Debian + Docker)で動かしてみる : Nginx on Docker編

前回はLinux(Debian 10)で直接Nginxを使用してみました。

  .Net Core ASP.NET MVCをLinux(Debian + Docker)で動かしてみる : Nginx編

今回はNginxをDockerで動かしてみたいと思います。




Nginxは…説明するまでもありませんね。軽量・高速・お手軽なWebサーバーです。では、例によって公式イメージから調べてみましょう。

  公式イメージ : Docker hub nginx
  公式イメージ : github nginx

NginxはDocker Hubの方が色々解説が丁寧です。こちらを参考にしながら進めていきたいと思います。


・とりあえず動かしてみる

まずはNginxを動かしてみたいと思います。以下のコマンドを実行するだけです。ポートもとりあえず80のままにしてしまいます。



これだけでとりあえず動きます。

20200215nginxdocker01

でも、これだけだとNginxが動いただけでなんにもなりませんね。。。とりあえず、コンテナを停止せずに次に進みます。


・設定ファイルを取り出す

Nginxを使いこなす為には、設定ファイル(nginx.conf)を自由にいじれる様にします。色々手段はあると思いますが今回はホスト上にマウントしてnginx.confをコンテナの外部から自由にいじれるようにします。 (Nginxの使い方を考えると、Build時にコンテナイメージに保存してimmutableにするのが正しいかもですが、今回は練習です)

設定ファイル保存用のフォルダを作成します。



以下のコマンドを実行して、Nginxの設定ファイルをコンテナから取り出します。



これで、Nginxの最初のコンテナは用無しとなりましたのでコンテナを削除します。




・色々設定してみる

さて、設定ファイルを取り出す事が出来たので色々やって見ましょう。通常Webサイトを作るとなると…最低でも以下の 事が必要となると思います。早速それを実施してみる事とします。

  ・自分で作成したHTMLを表示する
  ・Logファイルをホスト側で
  ・Httpsを利用する


まずは、コンテンツ用フォルダとLogフォルダを作成します。



続いて/data/docker/containers/nginx/www/defaultにindex.htmlファイルを以下の名前で作成します。



続いてHttpsの為に証明書を作成します。勿論遊びの為に証明書なんて買えないのでとりあえずオレオレ証明書を用意します。
下記のコマンドを実行して証明書を作成します。



以下の様に色々質問されますが、とりあえず全部何も入力しないでEnterで大丈夫です。



サイトを追加します。今回のサイトはssl.confファイルで定義する事にします。SSL用のサイトは別のサイトに
します。今回はIPアドレスを別に設定する事にします。

  HTTP ホストのIPアドレス : 192.168.128.230
  HTTPSサイトのIPアドレス : 192.168.128.231


/data/docker/containers/nginx/conf/ssl.confを以下の様に編集します。



最後に、以下のコマンドで実行します。




無事に動きました! 以下がhttpのサイト(nginxのデフォルトのまま)です。

20200215nginxdocker02

そして、別のサイト(別のIPアドレス)はhttpsの接続とオリジナルのコンテンツとなっています。

20200215nginxdocker03

そして、ログファイルもちゃんと/data/docker/containers/nginx/logsに吐き出されています。 これで、一通りやりたい事を全て実行できました。



以上です。これでNginxをDockerで動かす事ができました! Nginxはシンプルで扱い易いですね。Nginxを扱うのは今回が
初めてでしたが、設定ファイル等もそれほど苦労せずに設定する事ができました。軽量・シンプル・そして設計思想が
役割分担であるNginxはDockerとも相性が良さそうですね。もう少し使い込んでみたいと思います。





さて、これでWebサーバを簡単に立てる事ができました。これならば、気軽にフロントをNginxwで立ててバックエンドに アプリケーションサーバを立てられそうです。続いて、Webサーバとアプリケーションサーバを分離した様な構成を Dockerを使用して立ててみたいと思います。あ、複数のコンテナの連携ならばDocker-Composeの方が良いですね!










« .Net Core ASP.NET MVCをLinux(Debian + Docker)で動かしてみる : Nginx編 | トップページ | Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) »

Linux」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« .Net Core ASP.NET MVCをLinux(Debian + Docker)で動かしてみる : Nginx編 | トップページ | Blazor WebAssemblyでもう少し遊んでみる(.NET Core v3.1 + VisualStudio2019) »