Ubuntu環境でnginxを導入する方法。
ドメインの紐づけやhttps通信設定などのルーティング作業。
関連ページ
業務でnginxを使ったプロジェクトに携わった事があり、興味が出たのでその実装メモ。
Node.jsが関わる実装の場合、WebサーバーはApacheよりnginxの方が親和性が高いらしいです。
まだ
次のページ
ではnginxのセキュリティ設定も併せて行っています。

nginxのポート番号について
まずaptを使ってnginxをインストールします。
インストールが終わったらポート番号を設定していきます。
URLにポート番号を指定していない場合、http通信は暗黙的にポート80、https通信は暗黙的にポート443として処理されます。
nginxはインストール直後の設定だと、
/etc/nginx/sites-available/default
にこのポート80の設定が適用されています。
上の
listen 80 default_server;
がIPv4設定、下の
listen [::]:80 default_server;
がIPv6設定です。
ただ私のVPSサーバーの環境だと、すでにApacheが動いていて、Apacheがポート80も443も占有しています。
今回のnginxはテストとして使いたいだけなので、886というhttps通信の独自ポート番号を使う事にしました。

設定ファイルの移動
sites-available/defaultを編集すればポート番号を簡単に変えられますが、後々の事を考えるとサイトごとにファイル管理した方がいいです。
defaultファイルの中身を、serverブロックを丸ごとコメントアウトしてください。
続いて
/etc/nginx/conf.d
に移動します。
ここの下にファイルを作成すると、サーバー起動時にnginxが勝手に読み取ってくれます。
名前は基本なんでもいいですが、拡張子だけはconfである必要があります。
今回は
test.host.conf
というファイルを作ってみました。

serverブロックへ設定を記述
test.host.confの中に以下のようなコードを打ち込みました。
(事前にドメインとSSL証明書を取得しておく必要があります)
個々のWebページに対するルーティング作業は、
serverブロック
内に記述していきます。
# --- HTTPS設定(テストポート886設定)
server
{
# --- ポート番号設定 ---
# IPv4
listen
886
ssl
default_server;
# IPv6
listen
[::]:886
ssl
default_server;
# 取得したドメイン名を紐づけ
server_name
[ドメイン名]
;
# SSL証明書の設定
ssl_certificate
[fullchain.pemへのフルパス]
;
ssl_certificate_key
[privkey.pemへのフルパス]
;
# ログの設定
access_log
/var/log/nginx/test.host.access.log;
error_log
/var/log/nginx/test.host.error.log;
# 表示したいページのルートディレクトリ
root
/var/www/html;
# 表示したいindexページ
index
index.nginx-debian.html;
# このドメインの全ページに適用される設定
# GETとPOST(とHEAD)以外のリクエストは全て拒否する
location
/
{
limit_except
GET
POST
{
deny
all;
}
}
}
最後の方に書いてある
/var/www/html/index.nginx-debian.html
というのは、nginxインストール時に自動的に作られるhtmlです。
編集を終えたら
nginx -t
のコマンドで構文に間違いがないか事前に確認が可能です。

サーバーを起動
設定したポート番号の解放を行ってください。今回の場合160と886を解放します。
指定のポートが解放されたか確認します。
最後にnginxサーバーを起動します。
[ドメイン名]
:886とブラウザのURLに入力すると、nginxのデフォルトページが表示されるはずです。
0
0