はじめに
前回までで本システムの大枠までできました。
今回はついにサービスを払い出します。
ちょっと個人的に実装が足りない部分もあるのですが、とりあえずまずは動くサービスを払い出すことが大事だと思います。
ですので、払い出しました。
こちらから行けます👇
今回はこのサービスを払い出すまでにした記録を備忘録の意味も込めて残しておこうと思います。
産声をあげたサービス
今回、爆誕したサービス(Phase 0)の機能としては
「緯度・経度とジャンルからその場所の半径500m以内のお店を表示する」というものです。
住所を入力すると緯度と経度を結果として求めてくれる補足機能(Option #1)もついています。
以下の(赤枠部分の)ように住所を入れて「Exec」ボタンを押すと緯度と経度を求めてくれます。
「緯度・経度とジャンルからその場所の半径500m以内のお店を表示する」については、
以下画像の(赤枠部分の)ように
①緯度と経度を入力する
②ジャンルを選ぶ
③Execボタンを押す
すると、半径500m以内のお店を表示されます。
サブドメインの使用
今回のサービスはサブドメインを用いて払い出しています。
maps.appare99-system.netのmapsの部分ですね。
サブドメインにした理由は仮に他のサービスを仮に払い出す際に追加でドメインを取得する必要がないからです。
サブドメインはさくらvpsの会員メニューのドメイン一覧から取得しているドメインにて、「Whois情報変更」から変更できます。
「さくらドメイン」→「ゾーン情報」→「レコード設定」の編集
でCNAMEを追加してあげます。
nginxとdjangoの設定
また、djangoのsettingであったり、nginxでの設定はサブドメインにするようにします。
nginxの設定は以下のような形
server {
root /usr/share/nginx/html;
index index.html;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/appare99-system.net/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/appare99-system.net/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location /static {
alias /usr/share/nginx/html/static;
}
location /media {
alias /usr/share/nginx/html/media;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X_Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8000;
}
}
server {
listen 80;
listen [::]:80;
server_name maps.appare99-system.net;
location / { return 301 https://$host$request_uri; }
}
djangoはsetting.pyのALLOWED_HOSTSに以下の設定を追記しています。
ALLOWED_HOSTS = ['XXX.XXX.XX.XX', 'maps.appare99-system.net']
SSLにサブドメインの追加
SSL認証の設定にサブドメインを追加するには以下のコマンドで行います。
# certbot certonly --force-renew --cert-name appare99-system.net -d appare99-system.net -d maps.appare99-system.net
サブドメインの追加は以下のサイトが参考になりました。
Let’s encryptに後からサブドメインのSSLを追加する(リバースプロキシ編)|猫あきら|note
※設定してからブラウザで確認する際にSSL認証が反映されるまで時間がかかります。
追加項目:「住所から緯度と経度を導く」機能
住所から緯度と経度を求められるようにしている部分ですが、こちらは緯度と経度を調べるのは面倒なのでできるだけ軽減したいために実装した部分になります。
これに関してはjavascriptにAPIがあるのでそれを使用しています。
参考はこちら👇ですね。
払い出しを終えて
一旦、今年の1月中にサービスを払い出すところまでできました。
どれくらい使ってもらえるかわかりませんが、少しずつサービスを改良、機能追加をしていきたいと思っています。
よかったらぜひ使ってみてね!