nginxを使っていて、proxy_passなどでIPアドレスではなくホスト名を利用したい場合は、
location / {
resolver 192.168.0.2 valid=2s;//DNSサーバのIP
のように記載すると、無事ホストからエイリアスを引いてくれます。
AWS上でVPCを構築しており、Route53を利用している場合は、VPCのローカルネットワークアドレスの2番目が固定で設定されているので、「10.xxx.xxx.2」や「172.xxx.xxx.2」など指定すれば、Route53を見てくれます。
##nginx_lua_moduleを利用してDBに接続する場合
OpenResty等で、nginx_lua_moduleを利用し外部DBなどに接続する場合のホスト名も同様です。
例えば、AWS上のVPCでプライベートDNSをRoute53で構築している場合、
location / {
resolver 192.168.0.2 valid=2s;
local mysql = require "resty.mysql"
local db, err = mysql:new()
if not db then
ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE)
end
local ok, err, errno, sqlstate = db:connect{
host = "db.hogehoge.local",
port = 3306,
database = "aiueo",
user = "username",
password = "userpass"
}
データベースのホストにホスト名を使いたい場合は、resolverディレクティブを指定する必要があります。
resolverで指定する値はIPアドレスである必要があります(多分)。
よろ。