Azure App Serviceは<Webアプリ名>.azurewebsites.net
でアクセス出来るけど、自分の好きなドメインを付けたいということで設定してみた。
ドメイン(Domain)を準備
まず、好きなドメインを準備する。準備する方法は、
- ドメイン管理会社で購入する。
- Azureで、
App Service ドメイン
を購入する。
の2通りが思いつくけど、今回はドメイン管理会社で購入してから作業を進めることにした。
(ちなみに、App Service ドメイン
の購入は、ここで書いているので、参考にしてもらえればと。)
ドメイン管理会社側の設定
利用しているのは「お名前.com」なので、まずドメインを追加購入した。その後、購入したドメインに、下記のようなDNSレコードを追加する。
ホスト名 | TYPE | VALUE |
---|---|---|
www.<購入ドメイン> | CNAME | <Webアプリ名>.azurewebsites.net |
購入ドメインにホスト名「www」を追加する(ホスト名は何でも良い。好きなものを付ける)。TYPEは「CNAME」を選択して、「<Webアプリ名>.azurewebsites.net」を指定する。 これで、www.<購入ドメイン>にアクセスした時、<Webアプリ名>.azurewebsites.netに飛ぶようになる。 よし、お名前.comで設定出来たぞと思ってアクセスしても、この時点ではこんな感じにエラーが出る。
なので、Azure側でも設定を追加する。
Azure App Service側の設定
Azure側でも設定は、チュートリアル:既存のカスタム DNS 名を Azure App Service にマップするを参考に設定する。
App Serviceのカスタムドメインで、「カスタムドメインの追加」をクリックする。
お名前.comで設定したドメイン、ホスト名を入力して、「検証」ボタンをクリックする。
検証に問題が無ければ、「検証」ボタンの下に「ホスト名レコードタイプ」が出てくる。今回はお名前.comで「CNAME」で登録しているので、「CNAME」を選択して「カスタムドメインの追加」ボタンをクリックする。
カスタムドメインに追加された事を確認したら設定は完了。
Apache、Laravelの設定
今回用意したApp ServiceはLaravelをApacheで動かしているので、設定ファイルも修正している。
httpd.conf (Apache)
ServerName www.chachat.io:80
ServerName
を<Webアプリ名>.azurewebsites.net
からwww.<購入ドメイン>
に変更した。
.env (Laravel)
APP_URL=http://www.chachat.io
APP_URL
も同様に変更。
確認
設定が終わったらブラウザーでURLを入力して、アクセス出来れば完了。
その他
DNSのレコードタイプ
DNSの設定でTYPEを「A」で設定する場合、Azure側はチュートリアル:既存のカスタム DNS 名を Azure App Service にマップするのA レコードのマップを参考にしながら設定するといいとだろう。 AWSのElastic IPとは違い、App Serviceを削除するとグローバルIPアドレスは変わってしまう(はず)ので、App Serviceの作成と削除を繰り返す今回は、CNAMEの手順でやってみた。
セキュリティ
他でも書いたけど、Azure Service証明書は金銭的に余裕があればやってみる…。