🐋
nginx-proxyで410 Goneを返す
はじめに
例えばMastodonやMisskeyの運用をやめたい時、しばらくは410 Goneを返すようにしておくと良いとされています。
返し方は環境によって変わるので、1例として書き残しておきます。
環境
- nginx 1.23.3
- jwilder/nginx-proxy
- nginxproxy/acme-companion
手順
- docker-compose.ymlの編集
- my_proxy.confの設定
docker-compose.ymlの編集
my_proxy.conf
をdocker-compose.yml
と同じ場所に用意し、それを読み取って反映してもらうようにします。
docker-compose.yml
reverse-proxy:
image: "jwilder/nginx-proxy:latest"
container_name: "reverse-proxy"
volumes:
- "html:/usr/share/nginx/html"
- "dhparam:/etc/nginx/dhparam"
- "vhost:/etc/nginx/vhost.d"
- "certs:/etc/nginx/certs"
- "/run/docker.sock:/tmp/docker.sock:ro"
- "./client_max_upload_size.conf:/etc/nginx/conf.d/client_max_upload_size.conf"
# 今回追加
- "./my_proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro"
restart: "always"
networks:
- "net"
ports:
- "80:80"
- "443:443"
my_proxy.confの設定
以下のように書いていきます。
今回はサブドメインの1つを閉鎖したかったので、server_name
に特定のものを指定します。
また、httpsにも対応できるように2種類書くことにしました。
my_proxy.conf
server {
listen 80;
server_name sub.example.com;
return 410;
}
server {
listen 443 ssl;
server_name sub.example.com;
return 410;
}
終わったら、コンテナを再起動して完了です。
まとめ
/etc/nginx/conf.d/my_proxy.conf
に設定を書くことでステータスコードを返すことができそうです。
この手の目的に対する方法は、複数見つかる代わりに自環境に合ったものがあるとは限らないので、参考になれば幸いです。
Discussion