この記事では、AmazonLinux2023上にNginxをインストールして、公開したWebページにIPアクセス制限とBasic認証の設定をしていきます。
前提
AmazonLinuxサーバー上にNginxをインストールをして、Webページの公開が完了していることが前提です。設定方法は以下の記事に記載しています。
IPアクセス制限の設定方法
①Nginxの設定ファイルを開き、includeするファイルパスを確認します。
cd /etc/nginx # ディレクトリ移動
sudo cat nginx.conf # 設定ファイル
http内のseverブロックは、Nginxへ接続された通信の処理設定を記載しています。
「/etc/nginx/default.d/*.conf」のファイルがincludeで読み込まれて処理されてることが分かるので、読み込み用ファイルを作成して、処理を追加します。
#サーバー内のincludeファイルフォルダの確認
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
②フォルダを移動して、「test.conf」を作成する。
cd /etc/nginx/default.d/ # ディレクトリ移動
sudo touch test.conf # 読み込み用ファイル
③IPアクセス制限設定を行う
sudo vim test.conf
# インサートモード [i]
# 書き込み保存 [:wq]
# 強制終了 [:q!]
# アクセス制限情報「/」は対象のディレクトリパス
location / {
allow xx.xx.xx.xx/xx;
deny all;
}
④設定を確認して更新反映
sudo nginx -t
sudo systemctl reload nginx
⑤ブラウザでWebページにアクセス(EC2のグローバルIP)すると、接続が遮断される。

Basic認証の設定方法
Basic認証は、httpd-toolsを使用して制限をかけていきます。
①httpd-toolsのインストール
sudo dnf install httpd-tools
②パスワードファイルの作成
sudo htpasswd -c /etc/nginx/.htpasswd admin(ユーザー名)
#2人目以降は「-c]はつけない
>パスワードを入力する
③設定ファイルへの登録
IPアクセス制限を設定した時と同様に読み込み用設定ファイルを作成する
cd /etc/nginx/default.d/ # ディレクトリ移動
sudo touch test.conf # 読み込み用ファイル
vimで開いて以下の設定を書き込み
location / {
auth_basic "Restricted Area"; # 認証時の表示名
auth_basic_user_file /etc/nginx/.htpasswd; # 2で作成したファイル
}
④サーバーへ更新内容を反映。
sudo nginx -t
sudo systemctl reload nginx
⑤ブラウザで動作確認をすると、認証が表示されるので先ほど設定したユーザー名とパスワードを入力する
