以前作成したNginxを利用します。
今回の設定で「http://xxx.xxx.xxx.xxx」という外部(グローバル)IPでのアクセスから「http://example.com」と言ったドメイン名でのアクセスが可能になります。
<前提条件>
お名前.comでドメイン取得済み
まだインスタンスを作成していない人はこちらを参考に作成してください。
インスタンスのOSはUbuntuでなので、今回のエントリー内のコマンドはUbuntuでのものとなります。
ドメインを取得していない人はお名前.comで取得してください。
キャンペーンをやっていると1円から取得することができます。
外部IP(グローバル)を固定
Lets EncryptでSSL化するのでドメイン(サブドメイン)をインスタンスに紐づける必要があるので外部IPを固定しておきます。
作成したインスタンスの名前をクリック
上部のメニューの「編集」をクリック
「ネットワークインターフェース」を展開
外部IPV4アドレスが「エフェメラル」になっているので、「IPアドレスを作成」から
任意の名前を入力して「予約」をクリック
これで外部IPが固定化されました。
Cloud DNSで
Cloud DNSは「ネットワークサービス」の中にあります。
ここの「ゾーンを作成」をクリックします。
ゾーン名は任意のものを入力、
DNS名は取得したドメイン名を入力して「作成」をクリックします。
レコードセットが作成されました。
NSレコードが必要になるので確認しておきます。
「レコードセットの作成」からAレコードを作成します。
IPv4アドレスにはインスタンスの外部IPを設定します。
お名前.comでネームサーバ設定
「ネームサーバーの設定」→「DNS設定/転送設定」
先ほど確認したNSレコードをお名前.comのネームサーバに設定します。
Nginxの設定
Nginxのconfigファイルにサーバ名を設定します。
UbuntuにNginxをインストールした場合のconfigファイルです。
CentOSの場合、configファイルの場所が違うので注意してください。
sudo vi /etc/nginx/sites-available/default
server_name _;
を
server_name example.com(お名前.comで取得したドメイン名);
に変更します。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name example.com(お名前.comで取得したドメイン名);
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
HTTPSを使う場合は「listen 443」のところのserver_nameも変更してください。
設定変更を反映させ、nginxを再起動します。
sudo nginx -t
sudo systemctl restart nginx
これでしばらく時間が経つとドメイン名でのアクセスが可能になります。