タグ別アーカイブ: Nginx

CentOS7にRedmineをインストールする

はじめに

 今回、WebサーバーにNginxを、アプリケーションサーバーにunicorn(+ Ruby on Rails + Redmine)を、データベースサーバーにMariaDBをそれぞれ採用して、CentOS7のインストールイメージminimalを使って構築したいと思います。
 なお、アプリケーションサーバーの部分についてはWebサーバーやデータベースサーバーと同様に、systemctlコマンドで起動や停止ができるようにします。

続きを読む

PHP-FPM をインストールする

はじめに

 PHP で開発された Web アプリを、Web サーバーとは別のサービスとして実行できるようにします。Web サーバーと分離する利点は、Apache や Nginx など、Web サーバーの種類に依存しないで実行できるようになる点、Web サーバーが稼働するホストとは別に、例えばアプリケーションサーバーとして別のホストに分散して構築できるようになる点などが挙げられます。
 今回、AWS EC2 Amazon Linux で稼働するホストで Nginx 向けに PHP-FPM をインストールする手順を紹介します。Nginx の設定ファイルのサンプルについてはこちらの投稿を参照してください。

続きを読む

Nginx に uWSGI + Django アプリ を組み込む

はじめに

 Django アプリを uWSGI でサービスとして起動して、Nginx でアクセスできるようにする手順をまとめました。
 Nginx のインストールはこちらの投稿を、Python の venv 環境を構築できるようにする手順はこちらの投稿を参照してください。
 なお、Linux ユーザーはホストの設定を操作する、wheel グループに属するユーザー user1 と、Webアプリケーションを管理する、nginx グループに属するユーザー webmaster の 2 つのアカウントを切り替えながら作業を進めます。これらのユーザーは下記コマンドで登録済みであるものとします。
 ホスト管理者 (user1) の領分と、アプリケーション管理者 (webmaster) の領分について、私なりの切り替え方が参考になれば幸いです。

[root]# useradd user1 -G wheel
[root]# useradd webmaster -g nginx
続きを読む

CentOS7 に Nginx をインストールする

はじめに

 Nginx は Web サーバーです。他の有名な Web サーバーに Apache がありますが、違いはプロセス(あるいはワーカー) ベースの処理か、イベントベースの処理か、になります。Nginx はイベントベースの Web サーバーで、同時リクエストの処理を得意とします。一方で、レスポンスまでに時間がかかるような、サーバーサイドで実行するプログラムのハンドリングは苦手です。このようなスクリプトは、FastCGI プロセスや uWSGI プロセスに中継して実行してもらうようにすることで、Nginx がボトルネックにならないように構成する必要があります。Nginx に uWSGI を連携させる手順についてはこちらの投稿を参照してください。
 今回、Nginx を CentOS7 にインストールする手順と、PHP スクリプトを FastCGI で実行できるようにする PHP FPM のインストール手順を紹介します。

続きを読む

SSL 証明書の作成とインストール

はじめに

 SSL 証明書は SSL 証明書発行機関によって、対象のドメインが実際にどの組織によって運営されているかを保障するための証明書です。今回、SSL 証明書の申請からインストールまでの手順を紹介します。
 組織の実体証明の厳密さにより、SSL 証明書のグレードが設けられています。呼び方、認証方法は SSL 証明書発行機関により差がありますが、大まかには次の 3 グレードがあるようです。

  • Class1 … ドメインの所有者をオンラインにより確認。
      ドメイン名宛のメールアドレスなど、例えば postmaster@example.com 宛に届く確認メールで運営者を確認できれば認証 OK となります。
  • Class2 … ドメインの所有者を電話により確認。
      ドメイン名宛のメールアドレスに加えて、運営者の電話番号宛の電話などで運営者を確認できれば認証 OK となります。
  • Class EV … ドメインの所有者を書類により確認。
      ドメイン名宛のメールアドレス、運営者の電話番号宛の電話に加えて、書類の送付などにより運営者を確認できれば認証 OK となります。

 どのグレードの SSL 証明書でも、サーバーへのインストール手順は同じです。
 CentOS の場合、次のようなディレクトリ・ファイル構成で管理するとよいでしょう。この構成は SSL 証明書の他に、中間証明書を 2 つ必要とする 4 層構成の SSL 証明書をインストールする場合の構成です。

 なお、SSL 証明書関連のファイルがいくつか出てきますが、すべて PEM 形式とよばれるテキスト文字列のファイルです。本投稿ではファイルの役割を拡張子に付ける事で、わかりやすくなるようにしています。また、年度の更新がしやすいよう、ファイルの末尾には有効期限日を付けておきます。ただし、本番用にリリースするときは、サーバーの設定ファイルを編集しなくて済むよう、有効期限日は削除します。日付付きのファイルで一式を準備してから、日付なしのファイルにコピーして本番環境に適用する、という流れを想定しています。

(作業用ユーザーエリア)
~/tls/
  certs/                     ← 外部に公開するファイルを格納するディレクトリ
    example.com.crt.20160519 ← SSL 証明書
    example.com.ca.20160519  ← 中間証明書(3層目、2層目、の順で結合したもの)
  private/                   ← 外部に公開してはいけない/公開する必要がないファイルを格納するディレクトリ
    example.com.ca2.20160519 ← 中間証明書(2層目、クロスルート証明書と呼ばれることがある)
    example.com.ca3.20160519 ← 中間証明書(3層目)
    example.com.csr.20160519 ← CSR
    example.com.key.20160519 ← 秘密鍵

(本番用グローバルエリア)
/etc/pki/tls/
  certs/                     ← 外部へ公開するファイルを格納するディレクトリ
    example.com.crt          ← SSL 証明書
    example.com.ca           ← 中間証明書(3層目、2層目、の順で結合したもの)
  private/                   ← 秘密鍵を格納するディレクトリ
    example.com.key          ← 秘密鍵

 大まかな流れは次のとおりです。

  • SSL 証明書の申請
  • SSL 証明書の受領
  • SSL 証明書のインストール
続きを読む